HATEOAS unter der Lupe

Der Rest von REST

Kai Tödter
© iStockphoto.com/aleksandarvelasevic

RESTful Web Services sind schon seit einiger Zeit in aller Munde und sehr beliebt. Viele der bekannten öffentlichen Web-APIs behaupten von sich, RESTful zu sein. Die meisten sind es allerdings nicht wirklich, unter anderem, da sie ein wichtiges Element von REST nicht erfüllen: Hypermedia as the engine of application state (HATEOAS). Dieser Artikel gibt einen Überblick über das Thema und zeigt an vielen konkreten Beispielen, warum RESTful Hypermedia APIs sinnvoll und sehr nützlich sind.

Ich beschäftige mich schon seit einiger Zeit ausgiebig mit RESTful Web Services und habe einige Erfahrung mit Client- und Serverentwicklung gesammelt. Dabei bin ich immer wieder auf Diskussionen gestoßen, die sich mit dem Thema beschäftigen, was die Best Practices in diesem Bereich sind. Viele der vermeintlichen REST-APIs, die man im Internet findet, sind eigentlich gar nicht RESTful (im Sinne von Roy Fieldings Dissertation). Wenngleich immer mehr APIs einige der Architekturprinzipien erfüllen, gibt es einen Bereich, der noch sehr wenig Verbreitung in heutigen APIs hat: Hypermedia as the engine of application state, auch oft abgekürzt mit dem unaussprechlichen Akronym HATEOAS. Einige Leute sprechen es übrigens wie „hate-ee-os“ (so ähnlich wie „hideous“) oder wie „hate O-A-S“ aus.
Aus Platzgründen möchte ich auf die von REST geforderten Architekturprinzipien nicht im Detail eingehen. Eine gute Erläuterung dieser Prinzipien finden Sie hier und hier. Dieser Artikel widmet sich hauptsächlich dem Punkt HATEOAS. Dabei liefern die Repräsentationen einer Ressource nicht nur eigene Attribute sondern auch mögliche Zustandsänderungen (z. B. in Form von Links) und andere Informationen, mit dem Ziel, die APIs robuster und selbstbeschreibender zu machen.

(Lesen Sie den kompletten Artikel im Java Magazin 11.14)

Geschrieben von
Kai Tödter
Kai Tödter
Kai Tödter ist Senior-System-Softwarearchitekt bei Siemens Building Technologies. Er hat mehr als siebzehn Jahre Java-Erfahrung und vertrat Siemens im Java Community Process (JCP). Kai vertritt Siemens in der Eclipse Foundation, und er ist Committer bei einigen Open-Source-Projekten. Kais aktuelle Themenschwerpunkte sind Technologien im Webumfeld und Hypermedia-APIs.E-Mail: kai.toedter@siemens.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: