© best_vector/Shutterstock.com
Teil 2: Nutzung von REST aus Sicht von Client und Server

REST(e)-Verwertung


REST-basierte APIs sind das Rückgrat einer modernen Applikation. Sie stellen vielfältige Services und Funktionen zur Verfügung. Apps und Webapplikationen können auf diese Weise auf die unterschiedlichsten Daten zurückgreifen. Hat man einen eigenen Service implementiert, kann man ihn ebenfalls für andere Anwendungen in Form eines API zur Verfügung stellen.

Im ersten Teil der Artikelserie über RESTful APIs haben Sie die Grundlagen zu REST und seiner Nutzung für APIs kennen gelernt. Wir haben gesehen, dass man mittels der Methoden GET, POST, PUT, PATCH und DELETE mit einem API kommuniziert. Dazu benötigt man den URI des Endpoints und Kenntnis darüber, welche Parameter man an das API senden muss, um die gewünschte Antwort zu erhalten. Beides bekommt man, wenn man die Dokumentation zum API studiert. Bevor man ein API in der eigenen Anwendung verwendet, testet man üblicherweise dessen Funktion und schaut sich die Antwort (Response) an. Sie wird meist als JSON-Datenstrom geliefert. JSON ist ein plattformneutrales Format, das man in allen modernen Programmiersprachen leicht verarbeiten (parsen) kann. In JavaScript ist das Parsen von JSON-Daten bereits integriert. Zum Testen eines API kann man beispielsweise das Kommandozeilentool curl [1] nutzen oder – etwas komfortabler – mit einem UI-Tool experimentieren. Wir hatten zu diesem Zweck die Arbeit mit dem Swagger Inspector [2] kurz vorgestellt. Ein weiteres wichtiges Thema bei der Verwendung eines API ist die Authentifizierung: Viele APIs verlangen für die Nutzung, dass sich der Client gegenüber dem Server eindeutig authentifiziert. Das gilt insbesondere dann, wenn man Daten auf dem Server verändern möchte, zum Beispiel mittels der Methoden PUT (schreiben) oder DELETE (löschen). Aber auch für die Nutzung von GET-Methoden (Datenabfrage) benötigt man oft einen Key. Anbieter eines API stellen über die Authentifizierung sicher, dass mit dem API kein Schindluder getrieben wird.

Nachdem man die Grundlagen von REST verstanden hat, kann man nach den konkreten Anwendungen von RESTful APIs fragen. Zum einen kann der Entwickler als Konsument auftreten. In diesem Fall wird ein fremdes API aus der eigenen App bzw. Webapplikation genutzt. Das API kann dabei öffentlich zur Verfügung stehen oder Bestandteil eines Service einer umfassenden Anwendungslandschaft sein. Die Kommunikation erfolgt über das Netzwerk, bei einem öffentlichen API über das Internet. Die andere Verwendung von REST für das API-Design besteht darin, dass man den eigenen Service als API implementiert und zur Verfügung stellt. Je nachdem, wo das API gehostet wird, ist es öffentlich über das Internet zugänglich bzw. kann nur innerhalb des Anwendungssystems genutzt werden. Im Folgenden gehen wir näher auf die Bereitstellung eines API ein.

Sich mit fremden Federn schmücken

Apps auf mobilen Geräten und Webapplikationen leben davon, dass sie auf vielfältige Daten und Services zurückgreifen. Eine Wetter-App hat Zugang zu aktuellen Wetterdaten von beliebigen Orten auf der ganzen Welt, eine TV-App zeigt das aktuelle Fernsehprogramm an, und eine Navigations- oder Routing-App kann auf die Verbindungsdaten des öffentlichen Nahverkehrs zugreifen. Auch andere Services und Funktionen sind denkbar. Über Methoden der künstlichen Intelligenz kann man Bilder, Videos oder Texte analysieren und interessante Informationen zu Tage fördern. Ebenso können sie beispielsweise umfassende Suchanfragen über ein API an die gängigen Suchmaschinen stellen. Dazu müssen Daten aus der lokalen Anwendung an den Server übertragen werden. Dieser verarbeitet die Anfrage und sendet eine Antwort zurück an den Client. Auch dazu werden API-Dienste verwendet. Die meisten dieser Dienste verwenden ein RESTful API, sodass die Nutzung der Services weitgehend generisch möglich ist. Viele APIs können Sie als Entwickler in der eigenen App sogar kostenfrei nutzen. Oft ist jedoch eine Registrierung notwendig, um ein eindeutiges Token zur Identifikation zu erhalten. Bei umfassender Nutzung bzw. um auf das gesamte Angebot eines API zugreifen zu können, ist meist ein Entgelt fällig. Möchte man seine App/Webapplikation um eine bestimmte Funktion erweitern, ist es also sinnvoll, sich auf die Suche nach einem passenden API zu begeben. Die Nutzung eines API zeigen wir anhand einiger Beispiele.

OpenWeatherMap [3] bietet ein API, um Wetterdaten abzurufen. Es existieren unterschiedliche Preismodelle, kostenfrei oder gebührpflichtig mit einem Monatsbeitrag von bis zu 2 000 US-Dollar. Die Unterschiede liegen in der Anzahl der möglichen API Calls pro Minute, dem Datenumfang und der Aktualisierungsrate. Um den Dienst zu testen, genügt die kostenfreie Version. Unabhängig vom gewählten Angebot benötigt man einen individuellen Key. Dieser Key ist bei jedem Aufruf des Endpunkts als Parameter zu übermitteln. Hier sei an die Ausführungen im ersten Teil dieser Artikelserie erinnert: Ein RESTful API ist zustandslos, d. h. der Server merkt sich keinerlei Daten zwischen den Aufrufen eines Clients. Daher muss der identifizierende Key auch bei jedem Aufruf übermittelt werden.

Ein Blick in die Dokumentation zeigt, wie einfach eine Abfrage des aktuellen Wetters für eine bestimmte Stadt ist. Die Syntax des API-Aufrufs lautet in diesem Fall api.openweathermap.org/data/2.5/weather?q={city name}, wobei der Parameter {city name} durch eine konkrete Ortsangabe zu ersetzen ist; für London beispielsweise sieht das folgendermaßen aus: api.openweathermap.org/data/2.5/weather?q=London.

In der Dokumentation finden Sie weitere Möglichkeiten, das Wetter zu erfragen, beispielsweise kann die Ortsangabe über geografische Koordinaten vorgenommen werden. Registrieren Sie sich bei OpenWeatherMap und probieren Sie das API aus. Die eigene Wetter-App oder die Anreicherung eines Datensatzes um die aktuellen Wetterdaten des jeweiligen Standorts ist nun nicht mehr schwierig.

Eine ganze Palette weiterer öffentlich nutzbarer APIs findet man bei Any API [4]. Hier werden frei zugängliche Services aufgeführt. Diese sind nach Kategorien sortiert, dokumentiert, und man kann viele davon direkt ausprobieren (Abb. 1).

krypczyk_bochkor_rest_2_1.tif_fmt1.jpgAbb. 1: Viele öffentlich nutzbare APIs sind bei Any API dokumentiert

Zwar bietet Any API entsprechende Services für die unterschiedlichsten Bereiche wie etwa Analytics, Location, Transport usw. Genauer ausprobieren wollen wir an dieser Stelle aber das API der Deutschen Bahn, das unter dem Namen Fahrplan-Free gelistet ist.

Über die Methode GET und den zugehörigen Endpunkt kann man beispielsweise folgende Anfrage senden: https://api.deutschebahn.com/freeplan/v1/location/{name}.

Der Parameter {name} ist dabei wieder zu konkretisie...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang