© DrHitch/Shutterstock.com
REST

2 REST-Reifegradmodell, Hypermedia und HATEOAS


Aufbauend auf den Grundlagen zu REST und HTTP, die im ersten Kapitel vermittelt wurden, führt Kapitel 2 in die Gestaltung von REST-Diensten ein, die mit Hypermedia arbeiten und das HATEOAS-Prinzip umsetzen. Dieses Prinzip wird aus der akademischen Sichtweise immer wieder als erstrebenswertes Ziel für gut designte REST-Dienste genannt und setzt sich in der Praxis nun auch immer häufiger durch. Dieses Kapitel beschreibt die Bedeutung und die Zusammenhänge von REST, Hypermedia und HATEOAS.

REST wird erst richtig zu REST, wenn verschiedenste Aspekte beachtet werden. Dieser Fakt führte zur Entwicklung eines Reifegradmodells speziell für REST-Implementierungen. In dessen höchster Stufe wird die Verwendung von Hypermedia in der Kommunikation gefordert. Basierend auf der Verwendung von Hypermedia hat sich wiederum das HATEOAS-Entwurfsprinzip herausgebildet, das bei der Verwendung mit REST viele Vorteile mit sich bringt.

Das REST-Reifegradmodell

Um eine gute REST-Implementierung zu realisieren, sind vom Entwickler verschiedenste Aspekte zu betrachten und zu berücksichtigen. Zunächst einmal ist eine sehr gute Kenntnis des HTTP-Protokolls notwendig. Wie im vorherigen Kapitel beschrieben, bildet eine korrekte Verwendung von HTTP-Headern, Verben, URLs und Statuscodes die Grundlage einer guten REST-Implementierung. Darüber hinaus ist, ebenfalls wie in Kapitel 1 beschrieben, eine ressourcenorientierte Denkweise notwendig. Diese beiden Aspekte spiegeln sich auch im REST-Reifegradmodell wider. Tabelle 2.1 zeigt die einzelnen Level des von Leonard Richardson aufgestellten Reifegradmodells. Es beinhaltet die verschiedenen Level von 0 bis 3, wobei 3 das hochwertigste ist und damit die bestmögliche Implementierung einer REST-Schnittstelle darstellt. Level 0 wird dabei auch als „RPCish REST“ bezeichnet. Hierbei bietet eine Anwendung oder ein Dienst nur einen einzigen URL an. An diesen werden die Nachrichten mit dem immer gleichen HTTP-Verb gesendet. Die Nachrichten enthalten Informationen dazu, welche Funktion ein System mit welchen Daten ausführen soll. Damit gibt es nur einen URL, der von außen ansprechbar und für verschiedenste Funktionen zuständig ist. Das erinnert sehr stark an Web Services mit SOAP oder eben auch an Remote Procedure Calls (RPC). Eine REST-Implementierung hat Level 1 erreicht, wenn eine ressourcenorientierte Denkweise dem Design der REST-Endpunkte zugrunde gelegt wurde. Das kennzeichnet sich dadurch, dass jede Ressource unter ihrem eigenen URL ansprechbar ist. In Level 1 wird jedoch für jede Operation noch immer dasselbe HTTP-Verb verwendet. In der Praxis findet man hier oftmals das POST-Verb als einziges HTTP-Verb. Dabei sind innerhalb der Nachricht wiederum Informationen dazu enthalten, welche Funktion mit einem Aufruf ausgeführt werden soll. Im nächsthöheren Level 2 werden nun für verschiedene Operationen auch verschiedene HTTP-Verben verwendet. So nutzt man für lesende Operationen in der Regel das HTTP-Verb GET und für schreibende Operationen das HTTP-Verb PUT. Mit dem Verb DELETE werden Daten gelöscht und mit POST werden bestehende Daten verändert bzw. aktualisiert. Wendet man die in Kapitel 1 beschriebene Vorgehensweise an, dann hat man also schon eine gute und auch hochwertige REST-Implementierung nach Level 2 geschaffen. Die hochwertigste REST-Implementierung wird mit Level 3 erreicht und verlangt den Einsatz von Hypermedia. Dabei ist der Einsatz von Hypermedia unabhängig davon zu sehen, ob ein REST-Dienst die Daten in Form von HTML, JSON, XML oder auch einem anderen Format ausliefert.

Level

Beschreibung

Level 0

Alle Daten sind über denselben URL verfügbar und alle Operationen auf diese Daten verwenden dasselbe HTTP-Verb.

Level 1

Daten sind über verschiedene URLs verfügbar, Operationen auf den verschiedenen URLs verwenden jedoch immer das gleiche HTTP-Verb.

Level 2

Daten sind über verschiedene URLs verfügbar und für verschiedene Operationen müssen auch unterschiedliche HTTP-Verben verwendet werden.

Level 3

Daten sind über verschiedene URLs verfügbar und enthalten Links zu anderen Daten (nutzen das Konzept von Hypermedia) bzw. auch Links zu Aktionen. Für verschiedene Operationen müssen unterschiedliche HTTP-Verben verwendet werden.

Tabelle 2.1: Level im REST-Reifegradmodell

Hypermedia

Das Konzept hinter Hypermedia beruht auf der Verknüpfung von Informationen bzw. Daten. Bereits in der ersten Version der...

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