REST und HTTP

Inhalt

Kapitel 1: Einleitung stellt die Motivation für den Einsatz von REST dar.

Kapitel 2: Einführung in REST gibt einen kurzen Überblick die wesentlichen Grundprinzipien und Mechanismen von REST und RESTful HTTP.
Leseprobe

Kapitel 3: Fallstudie: OrderManager stellt anhand einer einfachen Bestellverwaltung vor, wie die Grundprinzipien von REST für eine einfache Anwendung eingesetzt werden können, die über HTTP programmatisch genutzt werden kann. Dabei liegt der Fokus nicht auf inhaltlicher Vollständigkeit oder technischer Raffinesse, sondern auf der Illustration der wesentlichen Konzepte.

In Kapitel 4: Ressourcen beschäftigen wir uns mit dem abstrakten Konzept von Ressourcen und seiner konkreten Ausprägung im WWW. Neben der Identifikation mithilfe von URIs und der Einführung von Repräsentationen finden Sie hier auch Hinweise auf ein sinnvolles und REST-konformes Ressourcen- und URI-Design.

Kapitel 5: Verben stellt das abstrakte Konzept von Schnittstellen mit einem immer gleichen Satz von Operationen und die konkrete Ausprägung in HTTP vor. Neben den bekannten aus dem HTTP-Standard werden auch einige neuere Verben sowie die Möglichkeit zur Definition eigener Verben beschrieben.

Das Kapitel 6: Hypermedia spielt eine zentrale Rolle für das Verständnis von REST jenseits einfacher CRUD-Beispiele. Dahinter verbirgt sich das Konzept, Ressourcen miteinander zu verknüpfen, den Kontrollfluss einer Applikation dynamisch zu steuern und separat entwickelte Ressourcen unabhängig von ihrer Implementierungsstrategie oder ihrer Lokation zu kombinieren.

Kapitel 7: Repräsentationsformate beschäftigt sich mit den Datenformaten, die in REST/HTTP-Anwendungen in der Regel zum Einsatz kommen. Dabei werden die Vor- und Nachteile verschiedener Formate diskutiert und Hinweise zu deren Anwendung geliefert. Neben traditionellen Formaten betrachten wir auch einige, bei deren Design Hypermedia explizit berücksichtigt wurde.
Leseprobe

In Kapitel 8: Fallstudie: AtomPub finden Sie eine Beschreibung eines REST-konformen Protokolls zur Manipulation von Inhalten wie z. B. Einträgen in Weblogs oder Artikeln in einem CMS-System. Das Atom Publishing Protocol (AtomPub) ist ein offizieller Standard, der unter Beteiligung diverser Webexperten und REST-Verfechter definiert wurde und daher in vielerlei Hinsicht der Musterknabe der REST-Familie ist.

In Kapitel 9: Sitzungen und Skalierbarkeit erfahren Sie mehr über den Zusammenhang zwischen der Skalierbarkeit eines Systems und der Rolle, die der Verzicht auf eine sitzungsbehaftete Kommunikation dafür spielt. Thema sind neben der Motivation auch Empfehlungen, wie Sie einen sessionorientierten in einen sessionfreien Entwurf überführen können.

Kapitel 10: Caching beschäftigt sich mit der wichtigsten Performance-Optimierung im WWW und zeigt, wie Sie die beiden unterschiedlichen dafür vom HTTP-Protokoll unterstützten Verfahren – Validierungs- und Expirationsmodell – für Geschäftsanwendungen mit einer REST-Architektur nutzen können.
Leseprobe

Kapitel 11: Sicherheit gibt einen kurzen Abriss über die wesentlichen Sicherheitskonzepte im REST/HTTP-Umfeld und stellt neben allgemeinen Konzepten und den in HTTP integrierten Authentifizierungsmechanismen verschiedene Standards wie SSL, OpenID und OAuth vor.

Das Kapitel 12: Dokumentation beschäftigt sich mit Strategien zur Dokumentation von REST-Anwendungen, sowohl auf Basis einfacher HTML-Seiten wie auch mit- hilfe von standardisierten Beschreibungssprachen wie WSDL, RDDL oder WADL oder neuerer Ansätze wie Swagger, RAML oder API Blueprint.

Thema von Kapitel 13: Erweiterte Anwendungsfälle sind asynchrone Verarbeitung, zuverlässige Zustellung, Transaktionen und die Konflikterkennung bei parallelen Zugriffen.

In Kapitel 14: Fallstudie: OrderManager, Iteration 2 erweitern wir unser Beispiel aus Kapitel 3 sowohl fachlich als auch technisch mithilfe des Wissens aus den Kapiteln 4–13, um Ihnen einen realistischen Eindruck von den typischen Entwurfsentscheidungen bei einer nicht trivialen REST-Anwendung zu geben.

Kapitel 15: Architektur und Umsetzung befasst sich mit den Auswirkungen, die sich aus dem Einsatz von REST und HTTP für unterschiedliche Architekturaspekte ergeben. Dazu zählen die Anwendungs- und Systemarchitektur, die Architektur von Benutzerschnittstellen, die interne Softwarearchitektur einzelner Systeme und die neuen Herausforderungen bei der Gestaltung von Web-APIs.

Kapitel 16: »Enterprise REST«: SOA auf Basis von RESTful HTTP setzt die Konzepte von REST und die Technologien des Web in Beziehung zu serviceorientierten Architekturen (SOA) und zeigt, wie diese beiden Ansätze zusammenpassen können. Darüber hinaus finden Sie hier eine Diskussion über die Vor- und Nachteile von Webservices auf Basis von WSDL, SOAP und WS-* im Vergleich zu REST und HTTP.

Kapitel 17: Weboberflächen mit ROCA beschäftigt sich mit Webanwendungen, also REST/HTTP-Anwendungen, bei denen der Client ein Webbrowser ist, den ein Mensch verwendet. Wir diskutieren, wie man auch in diesem Fall das Beste aus dem Web herausholen kann. Neben REST stehen hier semantisches HTML, CSS und JavaScript sowie die klare Trennung von Verantwortlichkeiten im Vordergrund.

Im Anhang schließlich erfahren Sie mehr über die Werkzeuge, die Ihnen für eine konkrete Umsetzung einer REST/HTTP-basierten Lösung zur Verfügung stehen, und finden eine Übersicht der HTTP-Statuscodes, eine Beschreibung einiger fortgeschrittener HTTP-Mechanismen wie Pipelining und persistente Sessions, einen Verweis auf diverse Onlineressourcen mit weiterführenden Informationen, einen Überblick zu der Entwicklungen von HTTP/2, eine Liste der Referenzen sowie den Index.