REST-API Schnittstellen und Programmierschnittstellen
Was ist eine REST-API?
Eine REST-API ist die konventionellste Art von Application Programming Interface im World Wide Web. Wir erklären Anwendungsgebiete und Use-Cases.
Eine REST-API ist die konventionellste Art von Application Programming Interface im World Wide Web. Wir erklären Anwendungsgebiete und Use-Cases.
RE steht für REpresentational, das S für State und das T für Transfer. Daraus ergibt sich Representational State Transfer. REST ist eine Art Softwarearchitektur, mit der jede Schnittstelle zwischen verschiedenen Systemen beschrieben wird, die HTTP für ihre Kommunikation verwendet. Das REST-Paradigma besagt, dass beim Datentransfer zwischen zwei Klienten keine Information vom Datentransfer-Service selbst einbehalten wird – der Datenverkehr ist einmalig und in sich abgeschlossen.
Ein Beispiel: Sie loggen sich bei PayPal mit Ihren Login-Daten ein und werden vom Dienst authentifiziert. Bei Ihrer nächsten Sitzung müssen Sie sich wieder einloggen, weil keine Authentifizierung im vorherigen Login-Vorgang gespeichert wurde. Mehr zu Payment Providern wie PayPal.
Eine API ist dann RESTful, wenn sie die Normen der API REST Standards einhält.
Hauptkennzeichen ist erstens die lose Client-Server-Kopplung: Client und Server brauchen keinen Austausch, der über den der Daten hinausgeht. Heißt konkret: Den Server “interessiert” es nicht, was der Client mit den Daten anfängt. Den Client wiederum “interessiert” es wenig, wie die Server-Implementierung aussieht.
Zweitens ist eine REST-API sozusagen zustandslos, weil jeder API Call (oder API Aufruf), der beim Server eingeht, unabhängig ist. Für den Zugriff, das Erstellen, der Aktualisierung und dem Löschen von Ressourcen werden – unter Beibehaltung der Aufzählungsreihenfolge – die folgenden HTTP-Verben genutzt: GET, POST, PUT, DELETE. Wenn Sie Informationen auf einer Webseite anfordern, ist das ein GET. Ein POST passiert bspw. dann, wenn Sie Ihre Kontaktdaten im World Wide Web hinterlassen.
Drittens können API Calls gecached werden, sodass dieselbe Ressource nicht einen Mehrfach-Request erfährt.
Viertens ist eine REST-API einheitlich: Jede Ressource muss einen eindeutigen Uniform Resource Identifier haben.
Eine REST-API kann die gleichen Methoden zur Abfrage eines Drittanbieter-Servers nutzen, mit denen auch die Anzeige von Seiteninformationen oder Seitenformularen der gleichen Webseite erfolgt. Aus diesem Grund kann der Drittanbieter-Server über eine vom API-Editor bereitgestellte URL abgefragt werden.
Wo eine Anfrage in der Form eines API Calls, dort auch eine Antwort. Die Antwort erfolgt in einer der beiden spezifischen Rückgabeformate JSON oder XML. Unter Umständen kann die API-Entwicklung so vorgenommen worden sein, dass der User das Rückgabeformat der REST-API wählen kann.
Eine gut aufgebaute (RESTful) Schnittstelle ist in der Regel einfach lesbar und die entsprechende API-Dokumentation klar formuliert, so wie das bspw. bei der Youtube Data API der Fall ist.
Stellen Sie sich vor, eine dritte Person führt ein Adressbuch mit all Ihren Kontakten für Sie. Diesem Adressbuch können Sie 1. via API-Calls (also GET-Abfragen) Informationen entnehmen und 2. via API-Calls (POST) Informationen hinzufügen. Nun wollen Sie wissen, wem die Nummer zugehörig ist, die gerade auf Ihrem Handy angerufen hat (z.B. 09732 30 24 984, die Nummer von appleute).
Hierzu vollführen Sie eine GET-Abfrage an die in der API-Dokumentation hinterlegten Adresse Ihres Adressbuchs, beispielsweise api.meinadressbuch.com/kontakte/telefonnummern/097323024984.
Es wird offensichtlich, dass Sie also auf Basis eines Kriteriums, der Telefonnummer, nach dem gesamten zugehörigen Adresseintrag suchen. Die REST API wird Ihnen darauf im entsprechenden Rückgabeformat folgende Antwort liefern:
Das Ergebnis ist aufgrund der Einmaligkeit der Telefonnummer eindeutig. Würden Sie hingegen nach “Müller” suchen, hätten Sie ggf. mehrere Einträge, weil “Müller” in Ihrem Adressbuch evtl. häufiger vorkommt. So viel also zu GET-Anfragen zum Extrahieren bzw. Einfordern von Informationen über die s.g. REST-API.
Der Mechanismus für die POST-Aktion ist ähnlich dem der GET-Abfrage. Stellen Sie sich vor, Sie wollen Information nicht einfordern, sonder weitergeben. Bei einem GET-Request wollen Sie also etwas “posten”. Im übertragenen Sinne erfolgt das Posten über eine Art Kontaktformular bzw. Kontaktschablone, wobei die einzelnen Komponenten der geteilten Information über festgelegte Kontaktformular-Parameter an die Schnittstelle kommuniziert werden. So können Informationen an einen Drittanbieter weitergegeben und deren Empfang bzw. Status nach Erhalt gar bestätigt werden.
Bei Fragen zu oder Anwendungen (API zu PayPal, YouTube, ERP, etc.) von REST-APIs stehen Ihnen API-Entwicklungsagenturen wie appleute zur Seite.
appleute GmbH ist ein internationales Software-Entwicklungshaus mit Standorten in Deutschland und Indien. Angefangen hat alles mit einer Gruppe von Freunden, die sich als Freelancer zusammentaten. Jetzt entwickeln wir Produkte für Kunden auf der ganzen Welt.