Representational State Transfer
Was ist REST?
REST ist ein weit verbreiteteter Architekturstil für Webdienste und ihre Schnittstellen. Verschiedenste Online-Dienste und andere Anwendungen nutzen REST-Schnittstellen (REST APIs), um Informationen nach außen hin zur Verfügung zu stellen. Auf dieser Seite erklären wir die Merkmale und Vorteile von REST und zeigen, wie die Kommunikation über REST APIs in der Praxis funktioniert.
Definition
Was ist REST?
Representational State Transfer (REST) ist ein Architekturstil für Web-APIs. Er definiert verschiedene Kritierien, nach denen Webdienste und ihre Schnittstellen aufgebaut werden sollen. Eine Schnittstelle, die nach diesen REST-Prinzipien entwickelt wurde, nennt man REST API oder RESTful API.
Seit seiner Definition im Jahr 2000 hat sich REST als wichtiger Standard in der Entwicklung von Webdiensten etabliert. REST definiert, wie Anwendungen (REST-Clients) über Schnittstellen auf Informationen anderer Systeme zugreifen und diese abrufen oder verändern können.
Verschiedenste Anwendungen und Dienste kommunizieren heute über REST-Schnittstellen: Von Google Maps, PayPal und Streamingdiensten bis hin zu Haushalts- und Industriegeräten.
Funktionsweise
Wie funktioniert die Kommunikation über REST?
Die Kommunikation über REST-Schnittstellen erfolgt nach dem Client-Server-Prinzip. Der Server (ein Webdienst oder eine Anwendung) stellt Informationen („Ressourcen“) in Form einer REST API zur Verfügung. Einer oder mehrere Clients können über die REST API mit den Ressourcen interagieren und diese beispielsweise abrufen oder verändern.
In der Praxis kommunizieren REST-Client und REST API über das aus dem Internet bekannte HTTP-Protokoll. Eine REST API verfügt über eine URL, mit der sie erreicht werden kann, genau wie eine Website.
Ein REST-Client stellt eine HTTP-Anfrage an die REST API (engl.: „API call“), wobei eine bestimmte Ressource der API adressiert wird. Dies erfolgt mithilfe eines Uniform Resource Identifiers, kurz URI.
Die HTTP-Methode einer Anfrage legt fest, wie mit der adressierten Ressource interagiert werden soll. Dabei ist zwischen vier grundlegenden Methoden zu unterscheiden:
- GET: Fordert eine Repräsentation der adressierten Ressource an.
- POST: Ändert die adressierte Ressource oder legt eine neue Ressource an der angegebenen Adresse an.
- PUT: Fügt eine neue Ressource unterhalb der adressierten Ressource hinzu.
- DELETE: Löscht die adressierte Ressource.
Eine beispielhafte HTTP-Anfrage an eine REST API könnte folgendermaßen aussehen:
Im oben gezeigten Beispiel werden mit einer GET-Anfrage Informationen über einen Benutzer mit der ID 123 abgerufen. Außerdem wird der REST API mitgeteilt, dass die Antwort im JSON-Format erfolgen soll.
In vielen Fällen enthalten Anfragen an eine REST API weitere Parameter, darunter z.B. Authentifizierungsschlüssel.
Um Informationen über eine REST API abzurufen oder zu ändern, muss ein REST-Client die Adressen (URIs) der entsprechenden Ressourcen kennen. (Öffentliche) REST APIs verfügen daher über Dokumentationen, welche die Interaktionsmöglichkeiten aufzeigen. Außerdem kann eine REST API über eine ausgewählte Ressource selbst weitere URLs und Informationen zu ihrer Benutzung bereitstellen.
REST-Kommunikation für die industrielle Produktion
Mit der Cloud-Plattform manubes können Produktionsprozesse gezielt automatisiert und sämtliche Bereiche einer Produktion in Echtzeit visualisiert werden.
Neben industriellen Standardprotokollen wie OPC UA und MQTT nutzt manubes auch REST, um mit Online-Diensten, Geräten und anderen Anwendungen zu kommunizieren. Anfragen an REST-APIs können dabei in automatisierte Workflows integriert werden, wodurch sich der industrielle Datenaustausch gezielt steuern lässt.
Die manubes-Plattform bietet weltweiten Zugriff per Webbrowser, eine intuitive Bedienung und maximale Sicherheit für Produktionsdaten.
Grundprinzipien
Die Grundprinzipien von REST – Anforderungen an eine REST API
Damit ein Webdienst als REST-konform bzw. eine Web-Schnittstelle als REST API gilt, müssen sie verschiedene Voraussetzungen erfüllen. Diese Voraussetzungen bilden die Kernprinzipien des REST-Architekturstils.
Client-Server-Struktur:
Eine REST-konformer Webdienst muss auf einer Client-Server-Architektur basieren. Client und Server kommunizieren nur über die bereitgestellte Schnittstelle, wobei der Client Anfragen an den Server stellt und bestimmte Ressourcen adressiert. Einer der wichtigsten Vorteile dieses Modells ist die Skalierbarkeit: Durch die Client-Server-Trennung können Server unabhängig von den Clients erweitert werden.
Zustandslosigkeit:
Jede einzelne Anfrage eines Clients an eine REST API muss in sich geschlossen sein und alle Informationen erhalten, die zur Bearbeitung der Anfrage notwendig sind. Es findet keine Verwaltung der Client-Sitzungen durch den Server statt.
Möglichkeit zum Caching:
Client und Server müssen die Möglichkeit haben, erhaltene bzw. bereitgestellte Ressourcen zwischenzuspeichern, um unnötige Anfragen zu vermeiden oder Ressourcen schneller bereitzustellen.
Einheitliche Schnittstelle:
Die vom Server bereitgestellten Ressourcen müssen für alle Clients einheitlich adressierbar sein. In der Praxis stellt ein Server URLs bereit, mithilfe derer Clients die Schnittstelle navigieren und Ressourcen abrufen können (Hypermedia as the Engine of Application State).
Der Server stellt auf Anfrage Repräsentationen von Ressourcen bereit, mit denen ein Client interagieren kann, um die dahinterliegende Ressource zu verändern.
Mehrschichtigkeit:
Bei einer REST API muss den Clients lediglich eine einheitliche Schnittstelle bereitgestellt werden. Alle dahinterliegenden Ebenen bleiben verborgen. Dies begünstigt die Skalierbarkeit und erlaubt den flexiblen Einsatz verschiedenster Systeme und Technologien, darunter Firewalls, Content Delivery Networks (CDN), Load Balancing und mehr.
Code on Demand:
Im Gegensatz zu den oben beschriebenen Prinzipien ist die Code on Demand-Eigenschaft optional. Diese beschreibt die Fähigkeit von REST APIs, bei Bedarf und auf Anfrage ausführbaren Code an REST Clients zu schicken.
Vorteile
Welche Vorteile bietet REST?
Schnittstellen, die nach dem REST-Standard aufgebaut sind, zeichnen sich gegenüber vielen anderen Schnittstellentypen durch eine hohe Flexibilität, Skalierbarkeit und Einfachheit aus.
REST macht sich gängige Internettechnologie zunutze, darunter insbesondere das HTTP-Protokoll sowie URLs/URIs zur Adressierung der API und ihrer Ressourcen. Die Integration in bestehende Web-Infrastrukturen ist daher in der Regel deutlich einfacher. Viele Websites selbst stellen bereits REST-Schnittstellen dar.
Die Ressourcenorientierung von REST, bei der Ressourcen über URIs identifiziert und durch standardisierte Operationen (HTTP-Methoden) manipuliert werden, macht REST APIs für Entwickler vergleichsweise leicht verständlich.
Weiterhin sind REST APIs aufgrund ihrer Zustandslosigkeit und Mehrschichtigkeit leicht skalierbar und mit vielen Technologien zur Performance-Optimierung vereinbar: Dadurch dass Client und Server voneinander entkoppelt und Anfragen an eine REST API in sich geschlossen sind, können Schnittstellen flexibel erweitert werden. Für Clients sind diese Änderungen nicht sichtbar.
Und nicht zuletzt ist der REST-Architekturstil programmiersprachenunabhängig, da er auf offenen Standards und einfachen Datenformaten wie JSON oder XML basiert. Das fördert die Interoperabilität zwischen verschiedenen Systemen und ist einer der Hauptgründe, warum REST heutzutage so weit verbreitet ist.
Lernen Sie manubes kennen!
manubes bringt das industrielle Produktionsmanagement in die Cloud: Unsere innovative Plattform bietet spezialisierte Werkzeuge zur Anbindung von Produktionssystemen, Verwaltung und Visualisierung von Produktionsdaten sowie zur Automatisierung von Produktionsprozessen. manubes-Nutzer profitieren von einer leistungsfähigen Infrastruktur, weltweitem Zugriff und maximaler Sicherheit.