O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

REST und HTTP, 3rd 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. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. 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
  6. 2 Einführung in REST
    1. 2.1 Eine kurze Geschichte von REST
    2. 2.2 Grundprinzipien
    3. 2.3 Zusammenfassung
  7. 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
  8. 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 Konzept- und Informationsressourcen
      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
  9. 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
    5. 5.5 LINK und UNLINK
    6. 5.6 Zusammenfassung
  10. 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 Darstellung von Links und das <link>-Element
    8. 6.8 Standardisierung von Link-Relationen
    9. 6.9 Zusammenfassung
  11. 7 Repr&#228;sentationsformate
    1. 7.1 Formate, Medientypen und Content Negotiation
    2. 7.2 JSON
      1. 7.2.1 HAL
      2. 7.2.2 Collection+JSON
      3. 7.2.3 SIREN
      4. 7.2.4 Fazit
    3. 7.3 XML
    4. 7.4 HTML/XHTML
    5. 7.5 Textformate
      1. 7.5.1 Plaintext
      2. 7.5.2 URI-Listen
    6. 7.6 CSV
    7. 7.7 RSS und Atom
    8. 7.8 Binäre Formate
    9. 7.9 Microformats
    10. 7.10 RDF
    11. 7.11 Zusammenfassung
  12. 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
  13. 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
  14. 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
  15. 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
      1. 11.10.1 OAuth 1.0
      2. 11.10.2 OAuth 2.0
    11. 11.11 Autorisierung
    12. 11.12 Nachrichtenverschlüsselung und Signatur
    13. 11.13 Zusammenfassung
  16. 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 Swagger, RAML und API Blueprint
      4. 12.4.4 RDDL
    5. 12.5 Zusammenfassung
  17. 13 Erweiterte Anwendungsf&#228;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
  18. 14 Fallstudie: OrderManager, Iteration 2
    1. 14.1 OrderEntry
      1. 14.1.1 Medientypen
      2. 14.1.2 Servicedokumentation
      3. 14.1.3 Bestellpositionen
      4. 14.1.4 Zustandsänderungen
    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
  19. 15 Architektur und Umsetzung
    1. 15.1 Architekturebenen
    2. 15.2 Domänenarchitektur
      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
  20. 16 &#187;Enterprise REST&#171;: 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
  21. 17 Weboberfl&#228;chen mit ROCA
    1. 17.1 REST: Nicht nur für Webservices
    2. 17.2 Clientaspekte von ROCA
      1. 17.2.1 Semantisches HTML
      2. 17.2.2 CSS
      3. 17.2.3 Die Rolle von JavaScript
      4. 17.2.4 Unobtrusive JavaScript und Progressive Enhancement
    3. 17.3 ROCA vs. Single Page Apps
    4. 17.4 Zusammenfassung
  22. 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/JVM-Sprachen
        2. C.4.2 Microsoft .NET
        3. C.4.3 Ruby
        4. C.4.4 Python, Perl, Node.js & Co
    4. D HTTP/2 und SPDY
      1. D.1 Geschichte von HTTP
      2. D.2 SPDY
      3. D.3 HTTP/2
    5. Referenzen
  23. Index
  24. Fu&#223;noten
  25. Cover-R&#252;ckseite