In diesem Artikel werden Sie die REST-API weiter untersuchen und mehr über HATEOAS erfahren.
Beim Anzeigen einer Webseite können Sie die Daten auf der Seite anzeigen und Aktionen mit ihnen ausführen.
Wie wäre es mit einer REST-API? Wenn Sie eine REST-Ressource anfordern, erhalten Sie normalerweise die Ressourceninformationen zurück. Wie wäre es mit dem Senden von Vorgängen, die Sie mit der Ressource in der Antwort ausführen können?

Sie werden lernen:
- Was ist HATEOAS?
- Warum müssen Sie HATEOAS verwenden?
- Wann benutzt man HATEOAS?
REST-API
Dies ist der fünfte Artikel in einer Reihe von Artikeln über die REST-API:
Was bedeutet HATEOAS?
Der Begriff
HATEOAS steht für den Ausdruck „Hypermedia
A s The Engine Of
A Application State“ (Hypermedia als Engine of Application State). Um dies besser zu verstehen, müssen wir zuerst die Bedeutung von Hypermedien verstehen. Schauen Sie sich die folgende Webseite an:

Wenn der Browser eine Seite lädt, können Sie auf jeden Fall den gesamten Inhalt dieser Seite sehen. Interessanterweise können Sie auf der Seite auch viele Aktionen mit diesen Daten ausführen, zum Beispiel:
- Drücken der Tasten (grünes "Clone" oder "Download" (Download)
- Klicken auf Registerkarten (zum Beispiel, um "Probleme" anzuzeigen)
- und noch ein paar mehr
Nun wollen wir sehen, wie sich unsere REST-APIs verhalten:
Wenn Sie sich eine typische GET-Anforderung an einen RESTful-Server wie diese ansehen:

Die
GET-Anfrage localhost : 8080 / users erhält in diesem Fall einen Datensatz von drei Benutzern. Wenn Sie eine Anfrage mit
GET localhost : 8080 / users / 1 senden, erhalten Sie nur Informationen über den ersten Benutzer. Wenn wir eine REST-Anforderung ausführen, erhalten wir in der Regel nur Daten und keine Aktionen mit ihnen. Hier füllt HATEOAS die Lücke. Mit einer HATEOAS-Anfrage können Sie nicht nur Daten senden, sondern auch verwandte Aktionen angeben:

Dieses Beispiel war im JSON-Format. Das XML-Format für ein anderes Beispiel würde ungefähr so aussehen:

Wenn Sie diese Anfrage senden, um Kontoinformationen abzurufen, erhalten Sie beide:
- Kontonummer und Saldodaten
- Links, die Aktionen zum Einzahlen / Abheben / Übertragen / Schließen bereitstellen
Bei HATEOAS gibt mir eine Anforderung für eine REST-Ressource sowohl Daten als auch datenbezogene Aktionen.
Warum brauchen wir HATEOAS?
Der wichtigste Grund für HATEOAS ist die lose Kopplung. Wenn der Konsument eines REST-Service alle Ressourcen-URLs fest codieren muss, hängt dies eng mit der Implementierung Ihres Service zusammen. Wenn Sie stattdessen die URLs zurückgeben, die für Aktionen verwendet werden können, wird diese lose gekoppelt. Es besteht keine strikte Abhängigkeit von der Struktur der URI, wie sie in der Antwort angegeben und verwendet wird. Einige wichtige Themen im Zusammenhang mit HATEOAS:
HAL - Hypertext Application Language
Bei der Entwicklung eines RESTful-Service müssen Sie angeben, wie die Daten und Links zurückgegeben werden sollen, die der Anforderung entsprechen. HAL ist ein Format, mit dem Sie auf einfache und konsistente Weise Hyperlinks zwischen Ressourcen in Ihrer REST-API erstellen können. Hier ist ein Beispiel:

Mit HAL haben Sie verschiedene Kategorien von Ansichten:
- Links : als Kombination angegeben
- Ziel - als URI angegeben
- Beziehung - Name
- Eingebettete Ressourcen : Andere in dieser REST-Ressource enthaltene Ressourcen
- Status: aktuelle Ressourcendaten
Wenn Sie mit dem Spring Framework einen REST-Service entwickeln, ist Spring HATEOAS ein guter Mechanismus für Ihren Service.
Zu diesem Thema gibt es ein Autorenvideo.
Zusammenfassung
In diesem Artikel haben wir uns angesehen, was HATEOAS bedeutet.
Mit HATEOAS geben Antworten auf REST-Anforderungen nicht nur Daten zurück, sondern auch Aktionen, die für die Ressource ausgeführt werden können.
Dies trägt dazu bei, dass Anwendungen lose gekoppelt werden.
Zusätzliche Lektüre
REST + MongoDB + HATEOAS?HATEOAS REST Services Mit FrühlingSpring HATEOAS: Hypermedia-APIs mit Spring (vom Übersetzer hinzugefügt)