Tabla de Contenidos:
  • Intro
  • Vorwort
  • API-Grundlagen
  • Was ist ein API?
  • Vorteile eines API
  • Flexibilität für Anbieter und Konsument
  • Einheitliches Design und Funktionen
  • Neue Geschäftsfelder
  • Innovationstreiber API
  • API: Die Definition
  • API-Vertrag
  • Die Akteure eines API
  • Release-Arten von APIs
  • Mögliche API-Technologien und -Spezifikationen
  • Geschichte der Remote Execution
  • RESTful HTTP
  • JSON:API
  • gRPC
  • GraphQL
  • Die Technologien im Vergleich
  • Von der Idee zur Umsetzung
  • API Value Chain
  • Geschäftsmodelle für private und öffentliche APIs
  • Release-Arten
  • Private APIs
  • Öffentliche APIs
  • Erste Schritte: Allgemeines Vorgehen
  • Use Cases identifizieren
  • Funktionale Anforderungen
  • Nicht-funktionale Anforderungen
  • Die gemeinsame Sprache
  • Gemeinsames Vokabular durch Schema.org erzeugen
  • Grundlagen der GraphQL-API
  • Das Graphen-Modell erzeugen
  • Abfragen mit GraphQL
  • Grundlegende Querys
  • Querys generell
  • Verschachtelte Querys
  • Parameter in Querys
  • Variablen in Querys
  • Aliases in Querys
  • Fragmentierte Querys
  • Direktiven in Querys
  • Inline-Fragmente in Querys
  • Metafelder in Querys
  • Mutationen: Datenmanipulation mit GraphQL
  • Subscriptions: GraphQL Message Streaming
  • Das GraphQL-Typ-System: Schemadefinition
  • Grundlegende Schemas
  • Skalar-Typen
  • Enumerations-Typen
  • Typ-Modifikatoren: Listen und Non-Null
  • Parameter
  • Input-Typen
  • Interfaces
  • Union-Typen
  • API-Design I: Rund ums Schema des API
  • Qualitätsmerkmale
  • Designempfehlungen
  • Schemadesign-Empfehlungen
  • Mutation-Designempfehlungen
  • HTTP: Netzwerk-Design
  • POST-Requests
  • GET-Requests
  • Responses
  • Pagination
  • Splicing
  • Offset-basierte Pagination
  • Cursor-basierte Pagination
  • Edges und Connections
  • Fehlermanagement
  • Application Errors
  • Type und Validation Errors
  • Fehler mit partiellen Ergebnissen
  • Fehler ohne Teilergebnisse
  • API-Design II: Die Landschaft um das API
  • Autorisierung
  • GraphQLs Probleme mit Autorisierung
  • Autorisierung auf Ebene der Geschäftslogik
  • Dokumentation
  • Statische Dokumentation
  • Dynamische Dokumentation
  • Versionierung
  • GraphQLs Evolution im Beispiel
  • Monitoring und Instrumentation
  • Feingranulares Monitoring
  • Verstehen, wie das API genutzt wird
  • Performanzoptimierung: Caching und Batching
  • Das 1+n-Problem
  • DataLoader
  • CDN-Caching
  • Clientseitiges Caching
  • Implementierung mit Node I: Das erste Schema
  • Use Case
  • Initiales Aufsetzen des Projekts
  • Das Node.js-Projekt aufsetzen
  • Den GraphQL-Server mit Apollo aufsetzen
  • Das initiale Schema aufsetzen
  • Parameter und erste Resolver-Logik
  • Feld-Level-Resolver und Interfaces
  • Interfaces und Filter für IDs
  • Typrelationen
  • Implementierung mit Node II: Erweitertes Schema und Mutationen
  • Schema-Modularisierung
  • Technische Separation
  • Domain-Separation
  • Resolver Map aufteilen und Models durch Context verteilen
  • Mutationen
  • Ein Produkt erstellen