REST und HTTP, 2nd Edition

Book description

  • Theoretisch fundierte, aber praxistaugliche Anleitung zum Einsatz von RESTful HTTP.+ Ein durchgängiges Beispiel schlägt die Brücke zwischen Theorie und Praxis+ Autor ist "MR. REST" in Deutschland und international renommiert+ Source-Code via Website

Table of contents

  1. Cover
  2. Title
  3. Copyright
  4. Vorbemerkung zur zweiten Auflage
  5. Vorwort zur ersten Auflage
  6. Danksagung
  7. Inhaltsverzeichnis
  8. 1 Einleitung
    1. 1.1 Warum REST?
      1. 1.1.1 Lose Kopplung
      2. 1.1.2 Interoperabilität
      3. 1.1.3 Wiederverwendung
      4. 1.1.4 Performance und Skalierbarkeit
    2. 1.2 Zielgruppe und Voraussetzungen
    3. 1.3 Zur Struktur des Buches
  9. 2 Einführung in REST
    1. 2.1 Eine kurze Geschichte von REST
    2. 2.2 Grundprinzipien
    3. 2.3 Zusammenfassung
  10. 3 Fallstudie: OrderManager
    1. 3.1 Fachlicher Hintergrund
    2. 3.2 Ressourcen
      1. 3.2.1 Bestellungen
      2. 3.2.2 Bestellungen in unterschiedlichen Zuständen
      3. 3.2.3 Stornierungen
    3. 3.3 Repräsentationen
    4. 3.4 Zusammenfassung
  11. 4 Ressourcen
    1. 4.1 Ressourcen und Repräsentationen
    2. 4.2 Ressourcendesign
      1. 4.2.1 Primärressourcen
      2. 4.2.2 Subressourcen
      3. 4.2.3 Listen
      4. 4.2.4 Projektionen
      5. 4.2.5 Aggregationen
      6. 4.2.6 Aktivitäten
      7. 4.2.7 Konzeptressourcen
      8. 4.2.8 Evolutionäre Weiterentwicklung und YAGNI
    3. 4.3 Ressourcenidentifikation und URIs
      1. 4.3.1 URI, IRI, URL, URN, XRI?
      2. 4.3.2 Anatomie einer HTTP-URI
      3. 4.3.3 URI-Templates
    4. 4.4 URI-Design
      1. 4.4.1 URI-Entwurfsgrundsätze
      2. 4.4.2 REST aus Versehen
      3. 4.4.3 Stabile URIs
    5. 4.5 Zusammenfassung
  12. 5 Verben
    1. 5.1 Standardverben von HTTP 1.1
      1. 5.1.1 GET
      2. 5.1.2 HEAD
      3. 5.1.3 PUT
      4. 5.1.4 POST
      5. 5.1.5 DELETE
      6. 5.1.6 OPTIONS
      7. 5.1.7 TRACE und CONNECT
    2. 5.2 HTTP-Verben in der Praxis
    3. 5.3 Tricks für PUT und DELETE
      1. 5.3.1 HTML-Formulare
      2. 5.3.2 Firewalls und eingeschränkte Clients
    4. 5.4 Definition eigener Methoden
      1. 5.4.1 WebDAV
      2. 5.4.2 Partial Updates und PATCH
      3. 5.4.3 Multi-Request-Verarbeitung und BATCH
    5. 5.5 Zusammenfassung
  13. 6 Hypermedia
    1. 6.1 Hypermedia im Browser
    2. 6.2 HATEOAS und das »Human Web«
    3. 6.3 Hypermedia in der Anwendung-zu-Anwendung-Kommunikation
    4. 6.4 Ressourcenverknüpfung
    5. 6.5 Einstiegspunkte
    6. 6.6 Aktionsrelationen
    7. 6.7 Das <link>-Element
    8. 6.8 Standardisierung von Link-Relationen
    9. 6.9 Zusammenfassung
  14. 7 Repräsentationsformate
    1. 7.1 Formate, Medientypen und Content Negotiation
    2. 7.2 XML
    3. 7.3 HTML/XHTML
    4. 7.4 Textformate
      1. 7.4.1 Plaintext
      2. 7.4.2 URI-Listen
    5. 7.5 CSV
    6. 7.6 JSON
    7. 7.7 RSS und Atom
    8. 7.8 Binäre Formate
    9. 7.9 Microformats
    10. 7.10 RDF
    11. 7.11 Zusammenfassung
  15. 8 Fallstudie: AtomPub
    1. 8.1 Historie
    2. 8.2 Discovery und Metadaten
    3. 8.3 Ressourcentypen
    4. 8.4 REST und Atom/AtomPub
    5. 8.5 Zusammenfassung
  16. 9 Sitzungen und Skalierbarkeit
    1. 9.1 Cookies
    2. 9.2 Ressourcen- und Clientstatus
    3. 9.3 Skalierbarkeit und »Shared Nothing«-Architektur
    4. 9.4 Zusammenfassung
  17. 10 Caching
    1. 10.1 Expirationsmodell
    2. 10.2 Validierungsmodell
    3. 10.3 Cache-Topologien
    4. 10.4 Caching und Header
      1. 10.4.1 Response-Header
      2. 10.4.2 Request-Header
    5. 10.5 Schwache ETags
    6. 10.6 Invalidierung
    7. 10.7 Caching und personalisierte Inhalte
    8. 10.8 Caching im Internet
    9. 10.9 Zusammenfassung
  18. 11 Sicherheit
    1. 11.1 SSL und HTTPS
    2. 11.2 Authentisierung, Authentifizierung, Autorisierung
    3. 11.3 HTTP-Authentifizierung
    4. 11.4 HTTP Basic Authentication
    5. 11.5 Der 80 %-Fall: HTTPS + Basic-Auth
    6. 11.6 HTTP Digest Authentication
    7. 11.7 Browser-Integration und Cookies
    8. 11.8 HMAC
    9. 11.9 OpenID
    10. 11.10 OAuth
    11. 11.11 Autorisierung
    12. 11.12 Nachrichtenverschlüsselung und Signatur
    13. 11.13 Zusammenfassung
  19. 12 Dokumentation
    1. 12.1 Selbstbeschreibende Nachrichten
    2. 12.2 Hypermedia
    3. 12.3 HTML als Standardformat
    4. 12.4 Beschreibungsformate
      1. 12.4.1 WSDL
      2. 12.4.2 WADL
      3. 12.4.3 RDDL
    5. 12.5 Zusammenfassung
  20. 13 Erweiterte Anwendungsfälle
    1. 13.1 Asynchrone Verarbeitung
      1. 13.1.1 Notifikation per HTTP-»Callback«
      2. 13.1.2 Polling
    2. 13.2 Zuverlässigkeit
      1. 13.2.1 PUT statt POST
      2. 13.2.2 POST-PUT-Kombination
      3. 13.2.3 Reliable POST
    3. 13.3 Transaktionen
      1. 13.3.1 Atomare (Datenbank-)Transaktionen
      2. 13.3.2 Verteilte Transaktionen
      3. 13.3.3 Fachliche Transaktionen
    4. 13.4 Parallelzugriff und konditionale Verarbeitung
    5. 13.5 Versionierung
      1. 13.5.1 Zusätzliche Ressourcen
      2. 13.5.2 Erweiterbare Datenformate
      3. 13.5.3 Versionsabhängige Repräsentationen
    6. 13.6 Zusammenfassung
  21. 14 Fallstudie: OrderManager, Iteration 2
    1. 14.1 OrderEntry
      1. 14.1.1 Servicedokumentation
      2. 14.1.2 Medientypen
      3. 14.1.3 Bestellpositionen
    2. 14.2 Fulfilment
      1. 14.2.1 Notifikation über neue Bestellungen
      2. 14.2.2 Bestellübernahme
      3. 14.2.3 Produktionsaufträge
      4. 14.2.4 Versandfristen
      5. 14.2.5 Lieferdatum
    3. 14.3 Reporting
    4. 14.4 Zusammenfassung
  22. 15 Architektur und Umsetzung
    1. 15.1 Architekturebenen
    2. 15.2 Anwendungsarchitektur
      1. 15.2.1 Systemgrenzen und Ressourcen
      2. 15.2.2 Medientypen und Kontrakte
      3. 15.2.3 Identität und Adressierbarkeit
    3. 15.3 Softwarearchitektur
      1. 15.3.1 Schichten
      2. 15.3.2 Domänenmodell
      3. 15.3.3 Nutzung von Diensten
    4. 15.4 Systemarchitektur
      1. 15.4.1 Netztopologie
      2. 15.4.2 Caching
      3. 15.4.3 Firewalls
    5. 15.5 Frontend-Architektur
      1. 15.5.1 Benutzerschnittstellen und RESTful-HTTP-Backends
      2. 15.5.2 Sinn und Unsinn von Portalen
    6. 15.6 Web-API-Architektur
    7. 15.7 Zusammenfassung
  23. 16 »Enterprise REST«: SOA auf Basis von RESTful HTTP
    1. 16.1 SOA-Definitionen
    2. 16.2 Business/IT-Alignment
    3. 16.3 Governance
      1. 16.3.1 Daten- und Schnittstellenbeschreibungen
      2. 16.3.2 Registry/Repository-Lösungen
      3. 16.3.3 Discovery
    4. 16.4 Orchestrierung und Choreografie
    5. 16.5 Enterprise Service Bus (ESB)
    6. 16.6 WSDL, SOAP & WS-*: WS-Architektur
    7. 16.7 Zusammenfassung
  24. Anhang
    1. A HTTP-Statuscodes
    2. B Fortgeschrittene HTTP-Mechanismen
      1. B.1 Persistente Verbindungen
      2. B.2 Request-Pipelining
      3. B.3 Range Requests
      4. B.4 Chunked Encoding
    3. C Werkzeuge und Bibliotheken
      1. C.1 Kommandozeilen-Clients
      2. C.2 HTTP-Server
      3. C.3 Caches
      4. C.4 Programmierumgebungen
        1. C.4.1 Java
        2. C.4.2 Microsoft .NET
        3. C.4.3 Ruby und Ruby on Rails
        4. C.4.4 Python, Perl & Co
  25. Referenzen
  26. Index

Product information

  • Title: REST und HTTP, 2nd Edition
  • Author(s): Stefan Tilkov
  • Release date: June 2011
  • Publisher(s): dpunkt
  • ISBN: 97833898647328