Matchmaker im Internet

Was ist REST-API?

| Autor / Redakteur: Otto Geißler / Otto Geißler

Eine REST-API ist eine Alternative zu anderen Schnittstellen wie zum Beispiel SOAP oder WSDL. REST ist aber weder Protokoll noch Standard.
Eine REST-API ist eine Alternative zu anderen Schnittstellen wie zum Beispiel SOAP oder WSDL. REST ist aber weder Protokoll noch Standard. (Bild: © djama - stock.adob.com)

Die „Representational State Transfer - Application Programming Interface“ (REST-API) ist eine Programmier-Schnittstelle, die den Austausch von Daten auf verteilten Systemen - insbesondere für Web-Services - ermöglicht.

Die meisten Anwendungen sind heute in irgendeiner Form mit dem Internet verbunden. Zusätzlich sind mobile Geräte wie Tablets oder Smartphones sowie sehr unterschiedliche Systeme im Einsatz, die Schnittstellen wie die REST-API (oder auch RESTful-API) notwendig machen. So ist die REST-API auch eine Kommunikation von Maschine zu Maschine, da unterschiedliche Systeme und Geräte miteinander verbunden werden und die „gleiche Sprache“ sprechen müssen.

Die Schnittstelle REST-API versetzt das System dann in die Lage, Daten und Aufgaben auf unterschiedliche Server zu verteilen oder mithilfe des HTTP-Requests anzufordern. Für die Bereitstellung moderner Web-Services wird heute vor allem wegen der weit verbreiteten Nutzung der „Cloud“ eine Vielzahl von API-Schnittstellen verwendet, um spezielle Services untereinander verfügbar zu machen.

Historie des REST-Paradigmas

Das REST-Konzept entstand aus dem von Roy Fielding im Jahre 1994 entworfenen HTTP-Object-Model. Über die Jahre entwickelte Fielding den Ansatz sukzessive weiter, bis er schließlich das REST-Architektur-Paradigma im Jahre 2000 in seiner Doktorarbeit „Architectural Styles and the Design of Network-based Software Architectures“ publizierte.

Daher verwundert es kaum, wenn das WWW schon einen großen Anteil der für REST erforderlichen Infrastruktur bereithält und ein großer Teil der Web-Services bereits REST-kompatibel sind. Dazu gehören zum Beispiel Online-Dienste, die statische Seiteninhalte per HTTP offerieren. Das REST-Paradigma hat sich jedoch erst so richtig um das Jahr 2014 durchsetzen können, da es bis dahin immer noch zu einer großen Anzahl an fehlerbehafteten Umsetzungen kam.

Wie funktioniert REST-API?

Die Programmierschnittstelle REST-API nutzt HTTP-Anfragen, um per PUT, GET, POST und DELETE auf Informationen zuzugreifen. Da REST das Verbinden mit Cloud-Diensten erlaubt und eine Interaktion ermöglicht, ist sie meist die erste Wahl. So sind REST-APIs zum Beispiel für Twitter, Amazon und Google im ständigen Einsatz. Und AWS, VMware, Azure und andere Cloud-Anbieter setzen fast ausschließlich auf REST.

Im Wesentlichen geht es darum, Transaktionen aufzuschlüsseln und anhand dieser eine gewisse Anzahl kleiner Module zu erstellen. Dies bedeutet für Entwickler eine Vereinfachung, aber mitunter auch Herausforderung, denn eine Modularität sollte gleich von Beginn ins Kalkül gezogen werden. Der Markt bietet verschiedene REST-API-Modelle: Zu den am weitesten verbreiteten Modellen gehören „Amazon Simple Storage“ (S3), „Cloud Data Management Interface“ (CDMI) und „OpenStack Swift“.

Architekturprinzipien von REST

Die REST-Schnittstelle legt nicht im Einzelnen ganz genau fest, wie konforme Services implementiert werden müssen. Jedoch verweist sie auf sechs verschiedene Charakteristika oder Architekturprinzipien („Constraints“), die ein Dienst aufweisen sollte:

Client-Server-Modell

Für REST sieht eine saubere Trennung von Datenhaltung und Nutzer-Interface vor. Dies hat zur Folge, dass sich Clients leichter an unterschiedliche Umgebungen und Plattformen anpassen lassen, während Server einfacher skalierbar sind.

Zustandslosigkeit

Client und Server müssen sich zustandslos („stateless“) austauschen können. Das heißt, jede Anfrage des Clients muss alle notwendigen Informationen beinhalten, denn der Server verfügt selbst über keinen gespeicherten Kontext. Dieses Prinzip optimiert die Visibilität, Zuverlässigkeit und Skalierbarkeit. Anderseits treten Nachteile hinsichtlich der Netzwerkgeschwindigkeit und der Client-Kontrolle auf.

Caching

Für eine Erhöhung der Netzwerkeffizienz, dürfen Clients gewisse Antworten des Servers speichern und bei gleichartigen Anfragen zu einem späteren Zeitpunkt wieder verwenden. Diese Antworten müssen jedoch als „cacheable“ oder „non-cacheable“ markiert werden. Daraus erwächst der Vorteil responsiverer Anwendungen mit höherer Effizienz und Skalierbarkeit. Andererseits entsteht das Risiko, dass Clients mitunter auf veraltete Daten aus dem Cache zurückgreifen.

Einheitliche Schnittstelle

Die Komponenten REST-konformer Dienste sollen eine einheitliche und vom Dienst entkoppelte Schnittstelle nutzen. Damit zielt das Prinzip auf eine vereinfachte Architektur und erhöhte Visibilität von Interaktionen ab. Mit standardisierten Schnittstellen nimmt man in der Regel Einbußen bei der Geschwindigkeit in Kauf, wenn Daten immer auf ein bestimmtes Format umgewandelt werden müssen.

Layered System

REST-API setzt auf mehrschichtige Systeme mit hierarchischer Struktur, die voneinander klar abgegrenzt sind. Auf diese Weise können zum Beispiel Legacy-Anwendungen gekapselt werden. Daraus ergibt sich eine erhöhte Sicherheit, bei allerdings höheren Latenzen und größeren Overheads.

Code-On-Demand

Das optionale Prinzip fordert die Erweiterung von nachlad- und ausführbaren Programmteilen – wie zum Beispiel als Applets oder Skripten. Auf Grund der Optionalität kann das Prinzip auch deaktiviert werden.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45296077 / Definitionen)