2
Dezember

Are you RESTful?

Eine Einführung in REST Web Services

Wenn wir mit Anderen sprechen, also Informationen austauschen, passiert das oft mittels unterbewusster kultureller und gesellschaftlicher Standards, die dafür sorgen, dass die Kommunikation (meistens) erfolgreich verläuft.

Ähnlich verhält es sich auch bei Computern. Aber eben nur ähnlich. Bevor erklärt wird, was es mit REST eigentlich auf sich hat, müssen wir noch verdeutlichen, was wir unter einem Web Service verstehen.

Was ist ein Web Service?

Ganz einfach formuliert ist ein Web Service eine Website, die für die Kommunikation zwischen Maschinen gemacht ist. Es geht hier also nicht mehr darum, dass ein Mensch über einen Computer mit einem anderen Computer kommuniziert, sondern ein Computer selbst sich Daten von einem anderen Computer beschaffen kann.

Während ein Mensch einen Browser nutzt, um Informationen anzufragen, nutzt der Browser selbst wiederum einen Web Service, um Daten zu bekommen.

Genau diese Selbstständigkeit erfordert aber, dass ein Web Service auf eine bestimmte Architektur wie HTTP aufsetzt, da Computer mit anderen Maschinen kommunizieren und kein echter Mensch an einem Ende sitzt und die Kommunikation überwacht.

Das Problem

Da inzwischen die weltweite Vernetzung von Computern über das Internet nichts mehr mit einem kleinen, überschaubaren Netzwerk zu tun hat, in dem alle Beteiligten die gleichen Kommunikationsarten benutzen, ist es schwierig mit herkömmlichen Verfahren eine standardisierte Kommunikation von zwei Teilnehmern herzustellen.

Verwirrt?

Stellen wir uns vor, jede URL, die auf eine bestimmte im Netz verfügbare Ressource zeigt, ist ein Substantiv wie „Apfel” in unserer Sprache. Es gibt unzählige Substantive, die mit verschiedenen Verben wie „essen“ oder „knabbern“ verknüpft werden können.

Die Schwierigkeit ist, dass mehrere Verben für ein und das selbe Substantiv genutzt werden können, was zu Verwirrungen führen kann. Ähnlich ist es auch bei URLs. Eine weitverbreitete Kommunikation zwischen verschiedenen Maschinen unter diesen Bedingungen aufzubauen, ist quasi unmöglich.

Was hat das mit REST zu tun?

Hier kommt REST ins Spiel. REST steht für „REpresentational State Transfer”. Es beschreibt grundlegend, wie andere Webstandards im World Wide Web eingesetzt werden können.

Dabei werden bei REST universelle Verben benutzt (GET, POST, PUT, DELETE). Verknüpft mit diesen vier Verben kann nahezu alles mit den entsprechenden URLs (den Substantiven) realisiert werden.

Was heißt das genau?

Da das Internet grundsätzlich schon die Maschine-Maschine-Kommunikation unterstützt, kann der Architekturstil REST direkt verwendet werden.

So wird die Kommunikation in weitreichenden Netzwerken zum Beispiel zwischen einem Client, also demjenigen, der Daten anfragt, und dem Server, der Daten zur Verfügung stellt, erleichtert.

Eigenschaften von REST

Damit sich ein Web-Service RESTful nennen darf, muss er folgende Eigenschaften erfüllen:

Die Adressierbarkeit spielt hier eine Rolle. Ist ein Dienst REST-konform besitzt er immer eine eindeutige Adresse (URL). Dadurch ist der Zugriffsweg auf die Ressource selbst festgelegt.

Eine wesentliche Charakteristik von REST ist auch, dass jede Nachricht, die zwischen Server und Client versendet wird, alle nötigen Informationen enthält. Dadurch müssen keine Zustandsinformationen gespeichert werden – der Service ist zustandslos.

Im Klartext: Egal wer eine bestimmte URL aufruft, sei es ein mobiles Gerät oder ein Desktop Computer, bekommt immer die gleiche Antwort zurück.

Wie schon oben erwähnt, gibt es bei REST zusätzlich nur eine begrenzte Zahl an Operationen, die möglich sind.

Schließlich ist nicht festgelegt, welche Form die Daten unter einer bestimmten Adresse haben müssen. Der Server kann entsprechend der Anfragen des Clients verschiedene Formate zurückgeben, beispielsweise HTML oder XML.

Fazit

RESTful Services bieten eine standardisierte Schnittstelle für Software und können von unterschiedlichen Clients genutzt werden. Das können etwa Browser oder Apps sein.

Dabei bringt ein fester Link den Vorteil, dass die selbe Ressource immer unter der selben Adresse zu finden ist. Außerdem kann durch die Standardisierung von REST eine Implementierung einer Anwendung mehrfach verwendet werden, was Zeit und Geld spart.