Web Services mit REST
Christian Kröger aus der JUGHH hat sich den O'Reilly - Titel "Web Services mit REST" vorgenommen. Jetzt liegt seine Rezension vor.
Rezension
Ich habe dieses Buch gelesen ohne mich vorher intensiv mit Web Services beziehungsweise mit den 'besseren' REST Web Services zu beschäftigen, ging also unvoreingenommen und damit dieser speziellen Thematik gegenüber aufgeschlossen an die Lektüre.
Die beiden Autoren Sam Ruby und Leonard Richardson führen den Leser zunächst in die Welt der real existierenden Web Services ein. Auf dieser Grundlage kategorisieren sie Web Services in REST-konform, RPC-artig, REST-RPC-hybrid und erläutern die Unterschiede und Besonderheiten. Die Kernaussage ist, dass die 'Simplizität der Schnittstelle' und das 'Denken in Ressourcen' den Vorteil eines REST-konformen Web Services gegenüber dem 'dicken' Web Service ausmachen. In diesem Zusammenhang werden bekannte REST-konforme Web Services sowie deren programmatische Verwendung beschrieben (Leider fast ausschließlich in Ruby).
Ein Aspekt des Buches behandelt die Frage nach einer vernünftigen ressourcenorientierten Architektur. Adressierbarkeit, Zustandslosigkeit, Verbindungshaftigkeit und eine einheitliche Schnittstelle stellen hierbei das Fundament dar. Webstandards wie HTTP-Header, Statuscodes, Etag etc. und deren Nutzen werden hervorgehoben.
bekommt der Leser einen Eindruck wie ein ressourcenorientierter Service entworfen werden sollte. Wie bereits oben erwähnt, sind die wenigen Codebeispiele fast alle in Ruby geschrieben (Der Autor Richardson hat übrigens im selben Verlag ein Buch zum Thema Ruby veröffentlicht), und damit nicht unbedingt für Jedermann gleich verständlich.
Abschließend werden die "Best Practices" zu REST und ROA und die Unterschiede der "herkömmlichen dicken" Web Services zu den ressourcenorientierten beleuchtet.
Das meiner Meinung nach für die Praxis potentiell interessante zwölfte Kapitel beschäftigt sich kurz mit bestehenden Frameworks für REST-konforme Services (Ruby on Rails, Restlet für Java und Django für Python).
Der ausgesprochen umfangreiche Anhang listet etliche Quellen zum eigentlichen Thema. Dieser wirkt über die Maßen gestreckt durch unnötige Auflistungen von HTTP-Codes und HTTP-Header.
Fazit
Für einen Einstieg in das Thema ist dieses Buch gut geeignet, wobei zumindest grundlegende Kenntnisse aus dem Bereich der Webprogrammierung vorhanden sein sollten. Da ich das Buch auch ein wenig aus der Java-Welt betrachtet habe, hat mich besonders das beschriebene Restlet-Framework interessiert. Leider kommt dieser Abschnitt mit neun Seiten für eine konkrete Verwendung in der Praxis etwas zu kurz und sollte vermutlich nur einen Anreiz zur eigenen Recherche sein.
Das Buch hat durchaus das Bewusstsein für die Ideen der ressourcenorientierten Services geweckt. Um das gelernte Wissen in der Praxis anzuwenden, reicht die Lektüre dieses Buches allein jedoch nicht aus.
Das ohnehin schon eher theoretische Thema wäre in diesem Umfang schwerlich ausreichend sowohl in Theorie als auch Praxis zu beschreiben gewesen.
Die Originalrezension findet ihr bei Amazon.de. Danke an Christian für die gute Arbeit :-)