Kurs Python richtig lernen/Webservices

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

Übung "Web Services mit Python"

In dieser Übung lernen Sie die Verwendung von Web Services mit Python kennen. Wir verwenden dazu Nomatim, einen Web service zur Geokodierung von OSM-Daten (Open Streetmap).

Geschätzter Zeitaufwand für diese Übung: ca. 1h.

Web-Service Kennenlernen mit cURL

Einführung

cURL ist ein Werkzeug, mit dem Daten über eine Internetadresse herunter-/ und hochgeladen werden können. Es unterstützt zahlreiche Internetprotokolle wie HTTP, FTP, LDAP etc. Wir verwenden es hier, um uns ohne Programmieraufwand mit der Funktionsweise des Web Services bekannt zu machen. Als Dokumentation dient die [Manpage von cURL].

Da wir in dieser Übung den Web Service mit JSON als Datenformat verwenden (Nomatim unterstützt auch HTML und XML) und dieses auf der Konsole ansprechend formatiert haben möchten, verwenden wir als pretty printer das JSON Python Modul. Hier ein Beispiel wie dieses verwendet werden kann:

curl [options] [URL...] | python -mjson.tool

Tip 1: Verwenden Sie die Option -v (verbose), um genau zu sehen, wie der Request an den Web Service aussieht. Das hielt beim Debugging enorm. Tip 2: Da das manuelle Erzeugen des URL encoded query strings an den Web Service URL etwas mühsam ist, können Sie cURL anweisen dies zu übernehmen mit Hilfe des Parameters "--data-urlencode". Beispiel (-G für einen HTTP GET Request):

curl -G --data-urlencode "key=v a l u e" http://hsr.ch/pythonrichtiglernen

Die Dokumentation der Web Service API von Nomatim finden Sie hier.

Aufgabe

  1. Finden Sie mit cURL und Nomatim den Längen- und Breitengrad der HSR (Oberseestrasse 10, 8640 Rapperswil).
  2. Nehmen Sie den Längen- und Breitengrad und überprüfen Sie, ob Nomatim Ihnen die richtige Adresse der HSR liefert (reverse geocoding).