Tilkov / Eigenbrodt / Schreier | REST und HTTP | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 330 Seiten

Tilkov / Eigenbrodt / Schreier REST und HTTP

Entwicklung und Integration nach dem Architekturstil des Web
aktualisierte und erweiterte Auflage
ISBN: 978-3-86491-643-4
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark

Entwicklung und Integration nach dem Architekturstil des Web

E-Book, Deutsch, 330 Seiten

ISBN: 978-3-86491-643-4
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark



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.
Tilkov / Eigenbrodt / Schreier REST und HTTP jetzt bestellen!

Weitere Infos & Material


1;Vorbemerkung zur dritten Auflage;6
2;Vorbemerkung zur zweiten Auflage;8
3;Vorwort zur ersten Auflage;10
4;Danksagung;12
5;1 Einleitung;22
5.1;1.1 Warum REST?;22
5.1.1;1.1.1 Lose Kopplung;23
5.1.2;1.1.2 Interoperabilität;24
5.1.3;1.1.3 Wiederverwendung;24
5.1.4;1.1.4 Performance und Skalierbarkeit;25
5.2;1.2 Zielgruppe und Voraussetzungen;25
5.3;1.3 Zur Struktur des Buches;26
6;2 Einführung in REST;30
6.1;2.1 Eine kurze Geschichte von REST;30
6.2;2.2 Grundprinzipien;32
6.3;2.3 Zusammenfassung;40
7;3 Fallstudie: OrderManager;42
7.1;3.1 Fachlicher Hintergrund;42
7.2;3.2 Ressourcen;44
7.2.1;3.2.1 Bestellungen;44
7.2.2;3.2.2 Bestellungen in unterschiedlichen Zuständen;51
7.2.3;3.2.3 Stornierungen;51
7.3;3.3 Repräsentationen;53
7.4;3.4 Zusammenfassung;54
8;4 Ressourcen;56
8.1;4.1 Ressourcen und Repräsentationen;56
8.2;4.2 Ressourcendesign;57
8.2.1;4.2.1 Primärressourcen;58
8.2.2;4.2.2 Subressourcen;59
8.2.3;4.2.3 Listen;59
8.2.4;4.2.4 Projektionen;60
8.2.5;4.2.5 Aggregationen;60
8.2.6;4.2.6 Aktivitäten;60
8.2.7;4.2.7 Konzept- und Informationsressourcen;60
8.2.8;4.2.8 Evolutionäre Weiterentwicklung und YAGNI;61
8.3;4.3 Ressourcenidentifikation und URIs;61
8.3.1;4.3.1 URI, IRI, URL, URN, XRI?;62
8.3.2;4.3.2 Anatomie einer HTTP-URI;63
8.3.3;4.3.3 URI-Templates;67
8.4;4.4 URI-Design;68
8.4.1;4.4.1 URI-Entwurfsgrundsätze;68
8.4.2;4.4.2 REST aus Versehen;71
8.4.3;4.4.3 Stabile URIs;72
8.5;4.5 Zusammenfassung;73
9;5 Verben;74
9.1;5.1 Standardverben von HTTP 1.1;74
9.1.1;5.1.1 GET;74
9.1.2;5.1.2 HEAD;76
9.1.3;5.1.3 PUT;77
9.1.4;5.1.4 POST;78
9.1.5;5.1.5 DELETE;78
9.1.6;5.1.6 OPTIONS;79
9.1.7;5.1.7 TRACE und CONNECT;79
9.2;5.2 HTTP-Verben in der Praxis;79
9.3;5.3 Tricks für PUT und DELETE;80
9.3.1;5.3.1 HTML-Formulare;80
9.3.2;5.3.2 Firewalls und eingeschränkte Clients;82
9.4;5.4 Definition eigener Methoden;84
9.4.1;5.4.1 WebDAV;84
9.4.2;5.4.2 Partial Updates und PATCH;86
9.4.3;5.4.3 Multi-Request-Verarbeitung;87
9.5;5.5 LINK und UNLINK;89
9.6;5.6 Zusammenfassung;90
10;6 Hypermedia;92
10.1;6.1 Hypermedia im Browser;92
10.2;6.2 HATEOAS und das »Human Web«;96
10.3;6.3 Hypermedia in der Anwendung-zu-Anwendung- Kommunikation;98
10.4;6.4 Ressourcenverknüpfung;99
10.5;6.5 Einstiegspunkte;99
10.6;6.6 Aktionsrelationen;101
10.7;6.7 Darstellung von Links und das -Element;102
10.8;6.8 Standardisierung von Link-Relationen;105
10.9;6.9 Zusammenfassung;106
11;7 Repräsentationsformate;108
11.1;7.1 Formate, Medientypen und Content Negotiation;108
11.2;7.2 JSON;109
11.2.1;7.2.1 HAL;110
11.2.2;7.2.2 Collection+JSON;113
11.2.3;7.2.3 SIREN;115
11.2.4;7.2.4 Fazit;117
11.3;7.3 XML;118
11.4;7.4 HTML/XHTML;119
11.5;7.5 Textformate;122
11.5.1;7.5.1 Plaintext;122
11.5.2;7.5.2 URI-Listen;123
11.6;7.6 CSV;123
11.7;7.7 RSS und Atom;124
11.8;7.8 Binäre Formate;126
11.9;7.9 Microformats;127
11.10;7.10 RDF;128
11.11;7.11 Zusammenfassung;130
12;8 Fallstudie: AtomPub;132
12.1;8.1 Historie;132
12.2;8.2 Discovery und Metadaten;133
12.3;8.3 Ressourcentypen;136
12.4;8.4 REST und Atom/AtomPub;138
12.5;8.5 Zusammenfassung;138
13;9 Sitzungen und Skalierbarkeit;140
13.1;9.1 Cookies;141
13.2;9.2 Ressourcen- und Clientstatus;143
13.3;9.3 Skalierbarkeit und »Shared Nothing«-Architektur;145
13.4;9.4 Zusammenfassung;147
14;10 Caching;148
14.1;10.1 Expirationsmodell;148
14.2;10.2 Validierungsmodell;150
14.3;10.3 Cache-Topologien;152
14.4;10.4 Caching und Header;155
14.4.1;10.4.1 Response-Header;155
14.4.2;10.4.2 Request-Header;156
14.5;10.5 Schwache ETags;156
14.6;10.6 Invalidierung;157
14.7;10.7 Caching und personalisierte Inhalte;158
14.8;10.8 Caching im Internet;158
14.9;10.9 Zusammenfassung;159
15;11 Sicherheit;160
15.1;11.1 SSL und HTTPS;160
15.2;11.2 Authentisierung, Authentifizierung, Autorisierung;161
15.3;11.3 HTTP-Authentifizierung;162
15.4;11.4 HTTP Basic Authentication;163
15.5;11.5 Der 80%-Fall: HTTPS + Basic-Auth;164
15.6;11.6 HTTP Digest Authentication;166
15.7;11.7 Browser-Integration und Cookies;168
15.8;11.8 HMAC;170
15.9;11.9 OpenID;171
15.10;11.10 OAuth;172
15.10.1;11.10.1 OAuth 1.0;173
15.10.2;11.10.2 OAuth 2.0;173
15.11;11.11 Autorisierung;175
15.12;11.12 Nachrichtenverschlüsselung und Signatur;176
15.13;11.13 Zusammenfassung;177
16;12 Dokumentation;178
16.1;12.1 Selbstbeschreibende Nachrichten;179
16.2;12.2 Hypermedia;180
16.3;12.3 HTML als Standardformat;180
16.4;12.4 Beschreibungsformate;181
16.4.1;12.4.1 WSDL;181
16.4.2;12.4.2 WADL;182
16.4.3;12.4.3 Swagger, RAML und API Blueprint;185
16.4.4;12.4.4 RDDL;189
16.5;12.5 Zusammenfassung;192
17;13 Erweiterte Anwendungsfälle;194
17.1;13.1 Asynchrone Verarbeitung;194
17.1.1;13.1.1 Notifikation per HTTP-»Callback«;196
17.1.2;13.1.2 Polling;197
17.2;13.2 Zuverlässigkeit;198
17.2.1;13.2.1 PUT statt POST;201
17.2.2;13.2.2 POST-PUT-Kombination;203
17.2.3;13.2.3 Reliable POST;204
17.3;13.3 Transaktionen;205
17.3.1;13.3.1 Atomare (Datenbank-)Transaktionen;205
17.3.2;13.3.2 Verteilte Transaktionen;206
17.3.3;13.3.3 Fachliche Transaktionen;206
17.4;13.4 Parallelzugriff und konditionale Verarbeitung;207
17.5;13.5 Versionierung;208
17.5.1;13.5.1 Zusätzliche Ressourcen;209
17.5.2;13.5.2 Erweiterbare Datenformate;209
17.5.3;13.5.3 Versionsabhängige Repräsentationen;210
17.6;13.6 Zusammenfassung;210
18;14 Fallstudie: OrderManager, Iteration 2;212
18.1;14.1 OrderEntry;213
18.1.1;14.1.1 Medientypen;213
18.1.2;14.1.2 Servicedokumentation;216
18.1.3;14.1.3 Bestellpositionen;220
18.1.4;14.1.4 Zustandsänderungen;221
18.2;14.2 Fulfilment;226
18.2.1;14.2.1 Notifikation über neue Bestellungen;226
18.2.2;14.2.2 Bestellübernahme;228
18.2.3;14.2.3 Produktionsaufträge;233
18.2.4;14.2.4 Versandfristen;234
18.2.5;14.2.5 Lieferdatum;234
18.3;14.3 Reporting;236
18.4;14.4 Zusammenfassung;238
19;15 Architektur und Umsetzung;240
19.1;15.1 Architekturebenen;240
19.2;15.2 Domänenarchitektur;241
19.2.1;15.2.1 Systemgrenzen und Ressourcen;242
19.2.2;15.2.2 Medientypen und Kontrakte;243
19.2.3;15.2.3 Identität und Adressierbarkeit;245
19.3;15.3 Softwarearchitektur;246
19.3.1;15.3.1 Schichten;247
19.3.2;15.3.2 Domänenmodell;248
19.3.3;15.3.3 Nutzung von Diensten;249
19.4;15.4 Systemarchitektur;251
19.4.1;15.4.1 Netztopologie;251
19.4.2;15.4.2 Caching;252
19.4.3;15.4.3 Firewalls;253
19.5;15.5 Frontend-Architektur;254
19.5.1;15.5.1 Benutzerschnittstellen und RESTful-HTTP-Backends;255
19.5.2;15.5.2 Sinn und Unsinn von Portalen;257
19.6;15.6 Web-API-Architektur;258
19.7;15.7 Zusammenfassung;261
20;16 »Enterprise REST«: SOA auf Basis von RESTful HTTP;262
20.1;16.1 SOA-Definitionen;262
20.2;16.2 Business/IT-Alignment;265
20.3;16.3 Governance;266
20.3.1;16.3.1 Daten- und Schnittstellenbeschreibungen;267
20.3.2;16.3.2 Registry/Repository-Lösungen;268
20.3.3;16.3.3 Discovery;268
20.4;16.4 Orchestrierung und Choreografie;269
20.5;16.5 Enterprise Service Bus (ESB);270
20.6;16.6 WSDL, SOAP & WS-*: WS-Architektur;270
20.7;16.7 Zusammenfassung;274
21;17 Weboberflächen mit ROCA;276
21.1;17.1 REST: Nicht nur für Webservices;276
21.2;17.2 Clientaspekte von ROCA;279
21.2.1;17.2.1 Semantisches HTML;280
21.2.2;17.2.2 CSS;281
21.2.3;17.2.3 Die Rolle von JavaScript;282
21.2.4;17.2.4 Unobtrusive JavaScript und Progressive Enhancement;284
21.3;17.3 ROCA vs. Single Page Apps;285
21.4;17.4 Zusammenfassung;286
22;A HTTP-Statuscodes;290
23;B Fortgeschrittene HTTP-Mechanismen;296
23.1;B.1 Persistente Verbindungen;296
23.2;B.2 Request-Pipelining;296
23.3;B.3 Range Requests;297
23.4;B.4 Chunked Encoding;297
24;C Werkzeuge und Bibliotheken;300
24.1;C.1 Kommandozeilen-Clients;300
24.2;C.2 HTTP-Server;301
24.3;C.3 Caches;302
24.4;C.4 Programmierumgebungen;303
24.4.1;C.4.1 Java/JVM-Sprachen;303
24.4.2;C.4.2 Microsoft .NET;306
24.4.3;C.4.3 Ruby;307
24.4.4;C.4.4 Python, Perl, Node.js & Co;307
25;D HTTP/2 und SPDY;310
25.1;D.1 Geschichte von HTTP;310
25.2;D.2 SPDY;311
25.3;D.3 HTTP/2;312
26;Index;326
27;www.dpunkt.de;0


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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.