Tourpl Wiki¶
Web Service¶
Offerte/Tasks¶
- Projektleitung (PL KES): 1.5 AT
- Startsitzung und Übergabesitzung mit Fleurop: 1 AT
- Test und Dokumentation des XML-Interfaces: 1 AT
- Design XML-Interface: 1.5 AT
- Authentisierung (simpler Key verwaltet in unserer DB): 1 AT
- Parsing XML-Input inkl. Fehlerbehandlung: 2 AT
- Integration Geocodierung und Optimierung Adressen: 2 AT
- Genierung Response optim. Adressliste:
- inkl. Optimierungsinfos + Bemerkungen: 2 AT
- Info darüber, welche Adressen nicht gefunden wurden 1 AT
API¶
Beschreibung¶
URL | tourpl.ch:6052/optimized_tour | |
---|---|---|
Accepts | XML | |
Parameters | - | |
Method | GET | |
Security | HTTP Basic Auth | |
Returns | 200 OK | Rückgabe der optimierten Tour |
400 BAD REQUEST | Falls XML Input falsch | |
401 UNAUTHORIZED | Falls Benutzer-/Passwortkombination falsch oder Benutzer hat keinen Premiumaccount | |
500 INTERNAL SERVER ERROR | Service nicht verfügbar oder interner Fehler | |
Description | Generiert für eine Liste von Adressen (Knoten) eine approximativ ermittelte optimale Tour (TSP). |
Input¶
Siehe auch XML Schema im Anhand (tourpl.xsd)
<optimize> <options> <kind>tour</kind> <!-- oneway|tour --> <transportation>car</transportation> <!-- car|bicycle|feet --> </options> <name>Tour de Suisse</name> <addresses> <address> <id>123</id> <name>Bundeshaus</name> <street>Bundesplatz</street> <zip>3011</zip> <city>Bern</city> <country>Schweiz</country> </address> <address> <id>456</id> <name>Bundesgericht</name> <street>Avenue du Tribunal-Fédéral 29</street> <zip>1005</zip> <city>Lausanne</city> <country>Schweiz</country> </address> <address> <id>789</id> <name>Bundesstrafgericht</name> <street>Viale Stefano Franscini 3</street> <zip>6500</zip> <city>Bellinzona</city> <country>Schweiz</country> </address> <address> <id>101</id> <name>XYZ</name> <street>?</street> <zip>1234</zip> <city>Zuerich</city> <country>Deutschland</country> </address> </addresses> </optimize>
Output¶
<tour> <status> <level>WARNING</level> <msg>Address not found: 101 XYZ</msg> </status> <statistics> <kind>tour</kind> <transportation>car</transportation> <duration>28140</duration> <!-- in seconds --> <distance>588900</distance> <!-- in m --> </statistics> <name>Tour de Suisse</name> <parts> <part> <id>123</id> <position>1</position> <address> <name>Bundeshaus</name> <street>Bundesplatz</street> <zip>3011</zip> <city>Bern</city> <country>Schweiz</country> </address> <location> <lat>41.8507300</lat> <lng>-87.6512600</lng> </location> </part> <part> <id>789</id> <position>2</position> <address> <name>Bundesstrafgericht</name> <street>Viale Stefano Franscini 3</street> <zip>6500</zip> <city>Bellinzona</city> <country>Schweiz</country> <location> <lat>41.8507300</lat> <lng>-87.6512600</lng> </location> </address> </part> <part> <id>456</id> <position>3</position> <address> <name>Bundesgericht</name> <street>Avenue du Tribunal-Fédéral 29</street> <zip>1005</zip> <city>Lausanne</city> <country>Schweiz</country> </address> <location> <lat>41.8507300</lat> <lng>-87.6512600</lng> </location> </part> </parts> </tour>
Security¶
HTTP Basic Authentication nach RFC 2617 => für einen produktiven Betrieb soll Zugriff über https angeboten
werden, damit Benutzername und Password nicht im Klartextformat übermittelt werden müssen
Testen¶
Beispiel mit Curl
$ curl -i --user name:pwd -H "Accept: text/xml" -X GET -d '<xml/>' tourpl.ch:6052/optimized_tour