: Stefan Tilkov, Martin Eigenbrodt, Silvia Schreier, Oliver Wolf
: REST und HTTP Entwicklung und Integration nach dem Architekturstil des Web
: dpunkt
: 9783864916434
: 3
: CHF 34.30
:
: Programmiersprachen
: German
: 330
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF
Das Buch bietet eine theoretisch fundierte, vor allem aber praxistaugliche Anleitung zum professionellen Einsatz von RESTful HTTP. Es beschreibt den Architekturstil REST (Representational State Transfer) und seine Umsetzung im Rahmen der Protokolle des World Wide Web (HTTP, URIs und andere). Es wird gezeigt, wie man klassische Webanwendungen und Webservices so entwirft, dass sie im Einklang mit den Grundprinzipien des Web stehen und seine vielen Vorteile ausnutzen. Nach einer kurzen Einleitung, die die Grundprinzipien vermittelt (Ressourcen, Repräsentationen, Hyperlinks, Content Negotiation), wird ein vollständiges praktisches Beispiel vorgestellt. Danach werden die einzelnen Konzepte sowie fortgeschrittene Themen wie Caching, Dokumentation und Sicherheit detailliert betrachtet. Schließlich wird eine erweiterte Form der Beispielanwendung entwickelt, um die Umsetzung der fortgeschrittenen Konzepte zu demonstrieren. Inzwischen etablierte Best Practices zu Entwurf und Implementierung werden in einem eigenen Kapitel beschrieben und diskutiert. Neu in der dritten Auflage ist u.a. die Behandlung von immer populärer werdenden Formaten (wie HAL, collection+json und Siren), Hinweise zur Dokumentation von Web-APIs sowie das Zusammenspiel mit Web-Oberflächen nach dem ROCA-Prinzip.

Stefan Tilkov beschäftigt sich seit Beginn der 90er-Jahre mit Architekturansätzen fu?r große, verteilte Systemlandschaften. Von 1993 bis 1998 war er in verschiedenen Rollen bei einem mittelständischen Softwarehaus tätig, zuletzt als Leiter des Bereichs Anwendungsentwicklung, bevor er 1999 die Technologieberatung innoQ Deutschland GmbH mitgru?ndete. Als Geschäftsfu?hrer und Principal Consultant beschäftigt er sich dort schwerpunktmäßig mit leichtgewichtigen Architekturansätzen und serviceorientierten IT-Architekturen. Martin Eigenbrodt ist seit 2009 Mitarbeiter bei innoQ. Als Senior Consultant gehört sowohl die Schulung und Beratung beim Entwurf von RESTful APIs zu seinen Aufgaben, als auch deren konkrete Implementierung. Technologisch liegt sein Schwerpunkt dabei auf Scala und Play. Silvia Schreier beschäftigt sich seit einigen Jahren mit REST. Zunächst im Rahmen ihrer Tätigkeit als wissenschaftliche Mitarbeiterin an der FernUniversität in Hagen und seit 2013 als Consultant bei innoQ. Dort liegt ihr Schwerpunkt auf dem Entwurf und der Entwicklung REST- und ROCA-konformer Anwendungen mit verschiedensten Programmiersprachen und Persistenzlösungen. Außerdem versucht sie bei Veranstaltungen verschiedenster Initiativen andere Menschen fu?r die IT zu begeistern. Oliver Wolf beschäftigt sich seit vielen Jahren mit Software- und Systemarchitektur und interessiert sich besonders fu?r große, verteilte Systeme mit hohen Anforderungen an Sicherheit, Skalierbarkeit und Flexiblität. Bevor er als Principal Consultant zu innoQ kam, war er unter anderem als Chefarchitekt, Technischer Produktmanager und Berater bei verschiedenen IT-Unternehmen tätig.
Vorbemerkung zur dritten Auflage6
Vorbemerkung zur zweiten Auflage8
Vorwort zur ersten Auflage10
Danksagung12
1 Einleitung22
1.1 Warum REST?22
1.1.1 Lose Kopplung23
1.1.2 Interoperabilität24
1.1.3 Wiederverwendung24
1.1.4 Performance und Skalierbarkeit25
1.2 Zielgruppe und Voraussetzungen25
1.3 Zur Struktur des Buches26
2 Einführung in REST30
2.1 Eine kurze Geschichte von REST30
2.2 Grundprinzipien32
2.3 Zusammenfassung40
3 Fallstudie: OrderManager42
3.1 Fachlicher Hintergrund42
3.2 Ressourcen44
3.2.1 Bestellungen44
3.2.2 Bestellungen in unterschiedlichen Zuständen51
3.2.3 Stornierungen51
3.3 Repräsentationen53
3.4 Zusammenfassung54
4 Ressourcen56
4.1 Ressourcen und Repräsentationen56
4.2 Ressourcendesign57
4.2.1 Primärressourcen58
4.2.2 Subressourcen59
4.2.3 Listen59
4.2.4 Projektionen60
4.2.5 Aggregationen60
4.2.6 Aktivitäten60
4.2.7 Konzept- und Informationsressourcen60
4.2.8 Evolutionäre Weiterentwicklung und YAGNI61
4.3 Ressourcenidentifikation und URIs61
4.3.1 URI, IRI, URL, URN, XRI?62
4.3.2 Anatomie einer HTTP-URI63
4.3.3 URI-Templates67
4.4 URI-Design68
4.4.1 URI-Entwurfsgrundsätze68
4.4.2 REST aus Versehen71
4.4.3 Stabile URIs72
4.5 Zusammenfassung73
5 Verben74
5.1 Standardverben von HTTP 1.174
5.1.1 GET74
5.1.2 HEAD76
5.1.3 PUT77
5.1.4 POST78
5.1.5 DELETE78
5.1.6 OPTIONS79
5.1.7 TRACE und CONNECT79
5.2 HTTP-Verben in der Praxis79
5.3 Tricks für PUT und DELETE80
5.3.1 HTML-Formulare80
5.3.2 Firewalls und eingeschränkte Clients82
5.4 Definition eigener Methoden84
5.4.1 WebDAV84
5.4.2 Partial Updates und PATCH86
5.4.3 Multi-Request-Verarbeitung87
5.5 LINK und UNLINK89
5.6 Zusammenfassung90
6 Hypermedia92
6.1 Hypermedia im Browser92
6.2 HATEOAS und das »Human Web«96
6.3 Hypermedia in der Anwendung-zu-Anwendung- Kommunikation98
6.4 Ressourcenverknüpfung99
6.5 Einstiegspunkte99
6.6 Aktionsrelationen101
6.7 Darstellung von Links und das101
6.7 Darstellung von Links und das101
102101
6.8 Standardisierung von Link-Relationen105
6.9 Zusammenfassung106
7 Repräsentationsformate108
7.1 Formate, Medientypen und Content Negotiation108
7.2 JSON109
7.2.1 HAL110
7.2.2 Collection+JSON113
7.2.3 SIREN115
7.2.4 Fazit117
7.3 XML118
7.4 HTML/XHTML119
7.5 Textformate122
7.5.1 Plaintext122
7.5.2 URI-Listen123
7.6 CSV123
7.7 RSS und Atom124
7.8 Binäre Formate126
7.9 Microformats127
7.10 RDF128
7.11 Zusammenfassung130
8 Fallstudie: AtomPub132
8.1 Historie132
8.2 Discovery und Metadaten133
8.3 Ressourcentypen136
8.4 REST und Atom/AtomPub138
8.5 Zusammenfassung138
9 Sitzungen und Skalierbarkeit140
9.1 Cookies141
9.2 Ressourcen- und Clientstatus143
9.3 Skalierbarkeit und »Shared Nothing«-Architektur145
9.4 Zusammenfassung147
10 Caching148
10.1 Expirationsmodell148
10.2 Validierungsmodell150
10.3 Cache-Topologien152
10.4 Caching und Header155
10.4.1 Response-Header155
10.4.2 Request-Header156
10.5 Schwache ETags156
10.6 Invalidierung157
10.7 Caching und personalisierte Inhalte158
10.8 Caching im Internet158
10.9 Zusammenfassung159