APIApplication Programming Interface
Einführung – Teil 2
API - Zusammenfassung
● Komplexe Dienste werden interessierten Entwicklern zur Verfügung gestellt
● Verschiedene Methoden der Benutzung● Zentraler Aspekt ist das Interface● Infos dazu gibts in den API-Dokus● Und auf dem Web (Tutorials, Foren, How-To's)
API – Häufigste Interface Typen
● Für Anfragen:● REST – Protokoll auf http-Basis● SOAP – Komplexeres XML-Protokoll
● Rückgabewerte:● XML – Irgend ein XML-Dialekt (HTML ist auch XML)● JSON – Objekte werden in Javascript Object
Notation kodiert● Reiner Text für einfachste Fälle (z.B. Url,
true/false, ..)
API - REST
● REST: Representational State Transfer● Alle Anfragen als HTTP, einfach und verständlich
● Sehr beliebt● Beispiel: Google Translate API
API - SOAP
● SOAP: Simple Object Access Protocol● XML-Dialekt● Verbreitet in der Java-Services-Welt
● Hat an Beliebtheit eingebüsst (Zugunsten von REST)
● Rückgabe:● SOAP-Antwort (Ebenfalls XML)
● SOAP ist ok von Server zu Server, aber fast unmöglich in Javascript
API - JSON
● Was ist JSON (Javascript Object Notation)● Komplexe, strutkturierte Daten als Objekt● In Javascript direkt (nativ) verwendbar
(XML muss hingegen „geparst“ werden)● Hat sich auch für andere Sprachen als „Format“
durchgesetzt (PHP, Java, Python, etc.)● Textformat, nicht binär, nicht XML
API -XML
● XML hat unzählige „Dialekte“● Formatiert gemäss strengen Regeln
(Validierung – Garant für formelle Richtigkeit)● Dadurch maschinell verarbeitbar● XHTML, SOAP, RSS, Atom, PLS, ...● Muss „geparst“ werden – Je nach dem sehr
ressourcenintensiv
API Application Programming Interface
Wo beginnen?
API – Erste Schritte
● Developer-Sektion einer Website● API-FAQ● „Hello World“ - Beispiel● API-Schlüssel (API-Key)● Eigene Applikation registrieren (falls nötig)● API-Dokumentation● Firefox: Firebug extension (Was passiert im
Hintergrund ?)
API – Weitere Schritte
● Testen mit kleinen Code-Fragmenten● Anpassungen immer wieder neu testen● Sandboxen benutzen, um API zu verstehen● Google is your friend (Tutorials, Beispiele,
Blogs von Entwicklern)● Irgendjemand hat dein Problem schon mal
gehabt...
API - Sandboxen
Beispiele für API-Sandboxen● http://code.google.com/apis/ajax/playground/● http://dev.twitter.com/console● http://developers.soundcloud.com/console
API - Dokus
● Umfassende Übersicht über Google Dienste● Dasselbe von Yahoo...
API – Portale und Infos
● Verzeichnisse● http://www.programmableweb.com/● http://www.webmashup.com/● http://www.webmonkey.com/category/apis/
● Anzahl APIs bei programmableweb.com(Stand April 2011): 3187 !!
● Ein ziemlich unüberschaubares Feld...
API Application Programming Interface
Noch ein paar Dinge...
API – Zu Beachten
● Eigene Site nicht komplett abhängig machen● API-Provider kann ein Problem haben● Die Verbindung kann schlecht/gestört sein● Der API-Provider hat aufgegeben● u.v.m
● Deshalb● Möglichst immer Backfall-Szenario parat haben● Externe Elemente asynchron laden
API – Zu Beachten
● Nicht alle User zur Anmeldung bei Google, Facebook, MySpace, etc. zwingen
● User über den Schutz Ihrer persönlichen Daten informieren
● z.B. Tages-Anzeiger (http://www.tagesanzeiger.ch/digital/internet/Facebook-Information/story/23053197)
● Info ist nicht ganz umfassend... siehe nächste Seite
API – Zu Beachten: Privacy
● Sicherheits- bzw. Privacyprobleme bei Einsatz von APIs – z.B. Facebook (Artikel in Telepolis)● Schon das Darstellen des „I like“ IFRAMEs liefert
an Facebook ein persönliches Cookie (falls Mitglied bei FB) gekoppelt mit dem Referrer (Seite auf der man sich befindet)
● Ebenso bei Facebook Connect...● Daten werden zunehmend persönlich und
gekoppelt mit dem gesamten Inhalt des sozialen Netzwerks
API - Privacy
● User sollten möglichst aufgeklärt werden● Die meisten haben keine Probleme● Viele finden das sogar sehr praktisch und
interessant, dass ihre Aktivitäten mit Friends geteilt werden können
● Kommerzielle Info-Provider sind sogar auf diese Form von „viral marketing“ angewiesen
APIApplication Programming Interface
Genug der Theorie...
APIApplication Programming Interface
LAB
API – Lab Javascript / Maps API
● Grundlage des Labs:● http://www.webmonkey.com/2010/02/make_maps_
with_google/
● Wir gehen Tutorial Schritt für Schritt durch● Analysieren mit Firefox/Firebug was im
Hintergund passiert● Zentrieren der Map auf Zürich● Spielen mit den vielen Möglichkeiten, Setzen
von Markern, Zeichnen von Linien/Flächen, etc.
APIApplication Programming Interface
E N D E