Betrachtet man momentan private Webseiten im Internet, so sind das meist Blogs. Neben den mehr oder weniger regelmäßigen Einträgen zu einem festgelegten Thema finden sich die üblichen Monats- und Themenarchive, aber auch mehr und mehr eigene Statusinformationen: Die letzten 10 gehörten Songs, die letzten gelesenen Bücher, gesehenen Filme bis hin zu den eigenen Erfahrungen am Morgen; der kurzen Parkplatzsuche gefolgt von der Ernüchterung über vergeudete Zeit im Personennahverkehr. Jede dieser Informationen kommt aus einer anderen Community im Netz: Songs, soziale Netzwerke, Bildersammlungen oder Statusmeldungen. Und all das findet man heute gesammelt auf der eigenen Seite.

Waren bis Ende der 1990er Jahre Webseiten noch statische Seiten, gefüllt mit Bild und Text, manchmal schon über externe Layout-Informationen zumindest einigermaßen einheitlich, so wird heute eine Homepage eher programmiert oder noch häufiger ein bestehendes Anwendungssystem installiert und verwendet. Webseiten sind also zu Programmen geworden, die nicht nur statischen Inhalt anzeigen können, sondern sich auch einfach bearbeiten lassen. Beispiele sind da die Wikipedia oder mit noch weniger Aufwand die eigene Profilseite in sozialen Netzwerken. Mit wenigen Mausklicken kann man den Inhalt verändern, sein Profilbild ändern, ohne sich vorher mit technischen Details wie HTML oder CSS auseinandersetzen zu müssen. Genauso werden Webseiten mit Neuigkeiten dynamisch erzeugt.

Doch wie funktioniert das nun, diese aktuellen Informationen auf der eigenen Seite einzublenden oder
selbst vom Mobiltelefon aus neue Nachrichten auf der eigenen Homepage zu veröffentlichen? Die Technik dahinter heißt Application Programmable Interface, kurz API. Im Deutschen lässt sich das übersetzen mit „durch eine Anwendung programmierbare Schnittstelle“. Durch eine API wird also eine Zugriffsmöglichkeit gegeben, mit der man auf die Dienste oder Angebote einer Webseite zugreifen kann. Dazu hat die API eine feste Adresse, vergleichbar mit einem Briefkasten.

Ein relativ einfaches Beispiel ist dabei Twitter. Mit dem Konzept, Nachrichten bis zu 140 Zeichen hinterlegen zu können — für alle oder nur für Freunde sichtbar — hat Twitter eine Homepage geschaffen, mit der man selbst quasi eine SMS an alle Interessierten schicken kann. Das ist an sich kein großes Konzept. Auf der Homepage erhält man ein Eingabefeld für diese Nachricht, über dem steht: What’s happening? Unter dem Eingabefeld sieht man die letzten Beiträge (Tweets) all jener, deren Beiträge man abonniert hat („people you are folowing“). Nun würde aber niemand einfach regelmäßig auf der Homepage vorbeischauen, was es so neues gibt oder, wenn er selbst etwas Spannendes erlebt, sofort ins Internetcafé rennen und bei Twitter auf der Homepage schreiben

Hier spielt die API von Twitter eine wichtige Rolle. Über die Schnittstelle lassen sich viele Dinge und Details maschinell abrufen, die man als Mensch auch auf der Homepage lesen kann: Die letzten Tweets, (der öffentliche Teil der) Benutzerprofile, die Suche nach bestimmten Begriffen und vieles mehr. Der Ablauf ist dabei etwa wie folgt: Ein Programm — auf dem eigenen Computer, Smartphone, vielleicht sogar im eigenen MP3-Player — schickt eine Nachricht an die API mit der Anmeldung des Benutzers. Wird diese akzeptiert, fragt das Programm nach Neuigkeiten der Freunde des Benutzers, empfängt diese und meldet sich von der API wieder ab. Danach kann das Programm die empfangenen Daten anzeigen oder anderweitig verarbeiten. Auf gleichem Wege kann man dann vom Handy aus auch seine neuste Trivialität an Twitter senden.

Neben Programmen auf dem eigenen Computer kann aber auch eine andere Homepage diese Schnittstelle nutzen, sich Informationen daraus besorgen oder dorthin versenden. Dadurch werden Homepages dynamisch, da sie auf die Änderungen anderer Seiten und deren Inhalte nicht nur reagieren, sondern auch Inhalte anderen Seiten verändern können. Ein neuer eigener Blogeintrag wird in Kurzform auch auf Twitter und ähnlichen Diensten bekannt gegeben, zusätzlich können aber auch Antworten auf diesen Seiten automatisch im eigenen Blog als Kommentar auftauchen.

Technisch besteht eine API aus einer Menge von Funktionen, die sich per Nachricht aufrufen lassen und dann eine Nachricht mit der Antwort zurückschicken. Die Anfrage wird in Form eines HTTP GET geschickt, das entspricht der Abfrage einer Webseite, jedoch werden zusätzlich einige Variablen mitgesandt. Die Funktion verarbeitet diese zusätzlichen Werte und liefert dann auf Basis dieser Werte eine Antwort aus. Diese Antwort ist eine maschinenlesbare Datensammlung, üblicherweise ein XML-Format, manchmal auch ein RSS-Feed. Die Daten, die man erhält, kann man dann verarbeiten, anzeigen, oder was auch immer man im Programm damit machen möchte.

Der Entwurf einer solchen API läuft in mehreren Schritten ab: Zunächst muss man sich überlegen, welche Daten, Handlungen oder Anfragen über eine Schnittstelle möglich sein sollen. Hat man beispielsweise einen Buchladen, wären mögliche Daten etwa Informationen zu einem Buch, einem Autor oder auch Kommentare, die zu einem Buch abgegeben worden sind, man könnte selbst ein buch kaufen, eine Bewertung zu einem Buch abgeben oder eine Suchanfrage stellen. All diese zunächst in Worten beschriebenen Interaktionen mit der Schnittstelle müssen dann in einzelne, nacheinander abzuarbeitende Aktionen oder auch Funktionen getrennt werden. Diese Gliederung definiert dann gleichzeitig Abläufe, an die sich Programme halten müssen, die Informationen abfragen möchten. So ist es möglich, dass man nur einmal eine Anmeldefunktion hat, diese aber zu Beginn des Einkaufs ebenso verwendet wie vor Abgabe eines Kommentars.

Die Strukturierung der API trägt also im wesentlichen zum Erfolg einer Webseite bei: Es kann passieren, dass man nicht alle wünschenswerten Aktionen abdeckt, die ein Programmierer gerne nutzen würde. Strukturiert man hingegen eine API nicht gut genug, kann es sein, dass man für eine einfache Frage nach einer bestimmten Information sehr viel Aufwand betreiben muss. Außerdem ist der Sicherheitsaspekt sehr wichtig: Informationen, die man nur als angemeldeter Benutzer sehen darf, müssen in der API bereitgestellt werden so, dass auch sonst niemand auf diese zugreifen kann. Gleiches gilt für die Authentifizierung eines Benutzers, bei der vor allem sichergestellt sein muss, dass niemand das Passwort „mitlesen“ kann. Das ist bei einer API vor allem deswegen wichtig, weil es sich um eine Schnittstelle zwischen 2 Programmen handelt.

Insgesamt ist also der Entwurf einer API gar nicht so einfach, vor allem, wenn man bedenkt, dass sich eine API mit der Zeit auch weiterentwickelt, erweitert wird und dabei immer noch die alten Anfragen unterstützen muss. Das erfordert schon im allerersten Entwurf viel Weitsicht.

Die API eines Dienstes im Internet bietet also die wunderbare Möglichkeit, diesen auch auf andere Geräte auszuweiten, die irgendeinen Zugriff auf die API bekommen. Dadurch kann ein einzelner Benutzer im Internet entweder seine eigenen Informationen gebündelter auf seiner Seite präsentieren, wie etwa der Twitter-Anwendung in Facebook, andererseits aber mit Anwendungen vor allem nach eigenen individuellen Vorlieben mit seinen Freunden, Bekannten, Lieblingsthemen und Informationen in Verbindung bleiben.

Noch keine Kommentare, sei der Erste!