Читать книгу GraphQL - Dominik Kress - Страница 6
На сайте Литреса книга снята с продажи.
Inhaltsverzeichnis
ОглавлениеVorwort
1API-Grundlagen
1.1Was ist ein API?
1.2Vorteile eines API
1.2.1Flexibilität für Anbieter und Konsument
1.2.2Einheitliches Design und Funktionen
1.2.3Neue Geschäftsfelder
1.2.4Innovationstreiber API
1.3API: Die Definition
1.3.1API-Vertrag
1.3.2Die Akteure eines API
1.3.3Release-Arten von APIs
1.4Mögliche API-Technologien und -Spezifikationen
1.4.1Geschichte der Remote Execution
1.4.2RESTful HTTP
1.4.3JSON:API
1.4.4gRPC
1.4.5GraphQL
1.4.6Die Technologien im Vergleich
2Von der Idee zur Umsetzung
2.1API Value Chain
2.1.1Geschäftsmodelle für private und öffentliche APIs
2.2Release-Arten
2.2.1Private APIs
2.2.2Öffentliche APIs
2.3Erste Schritte: Allgemeines Vorgehen
2.3.1Use Cases identifizieren
2.3.2Funktionale Anforderungen
2.3.3Nicht-funktionale Anforderungen
2.3.4Die gemeinsame Sprache
2.3.5Gemeinsames Vokabular durch Schema.org erzeugen
3Grundlagen der GraphQL-API
3.1Das Graphen-Modell erzeugen
3.2Abfragen mit GraphQL
3.2.1Grundlegende Querys
3.2.2Querys generell
3.2.3Verschachtelte Querys
3.2.4Parameter in Querys
3.2.5Variablen in Querys
3.2.6Aliases in Querys
3.2.7Fragmentierte Querys
3.2.8Direktiven in Querys
3.2.9Inline-Fragmente in Querys
3.2.10Metafelder in Querys
3.2.11Mutationen: Datenmanipulation mit GraphQL
3.2.12Subscriptions: GraphQL Message Streaming
3.3Das GraphQL-Typ-System: Schemadefinition
3.3.1Grundlegende Schemas
3.3.2Skalar-Typen
3.3.3Enumerations-Typen
3.3.4Typ-Modifikatoren: Listen und Non-Null
3.3.5Parameter
3.3.6Input-Typen
3.3.7Interfaces
3.3.8Union-Typen
4API-Design I: Rund ums Schema des API
4.1Qualitätsmerkmale
4.2Designempfehlungen
4.2.1Schemadesign-Empfehlungen
4.2.2Mutation-Designempfehlungen
4.3HTTP: Netzwerk-Design
4.3.1POST-Requests
4.3.2GET-Requests
4.3.3Responses
4.4Pagination
4.4.1Splicing
4.4.2Offset-basierte Pagination
4.4.3Cursor-basierte Pagination
4.4.4Edges und Connections
4.5Fehlermanagement
4.5.1Application Errors
4.5.2Type und Validation Errors
4.5.3Fehler mit partiellen Ergebnissen
4.5.4Fehler ohne Teilergebnisse
5API-Design II: Die Landschaft um das API
5.1Autorisierung
5.1.1GraphQLs Probleme mit Autorisierung
5.1.2Autorisierung auf Ebene der Geschäftslogik
5.2Dokumentation
5.2.1Statische Dokumentation
5.2.2Dynamische Dokumentation
5.3Versionierung
5.3.1GraphQLs Evolution im Beispiel
5.4Monitoring und Instrumentation
5.4.1Feingranulares Monitoring
5.4.2Verstehen, wie das API genutzt wird
5.5Performanzoptimierung: Caching und Batching
5.5.1Das 1+n-Problem
5.5.2DataLoader
5.5.3CDN-Caching
5.5.4Clientseitiges Caching
6Implementierung mit Node I: Das erste Schema
6.1Use Case
6.2Initiales Aufsetzen des Projekts
6.2.1Das Node.js-Projekt aufsetzen
6.2.2Den GraphQL-Server mit Apollo aufsetzen
6.3Das initiale Schema aufsetzen
6.3.1Parameter und erste Resolver-Logik
6.3.2Feld-Level-Resolver und Interfaces
6.3.3Interfaces und Filter für IDs
6.3.4Typrelationen
7Implementierung mit Node II: Erweitertes Schema und Mutationen
7.1Schema-Modularisierung
7.1.1Technische Separation
7.1.2Domain-Separation
7.1.3Resolver Map aufteilen und Models durch Context verteilen
7.2Mutationen
7.2.1Ein Produkt erstellen
7.2.2Produkt löschen
7.2.3Wunschliste mit Input-Typen erstellen
7.2.4Wunschlisten kaskadierend löschen
8Implementierung mit Java I: Das erste Schema
8.1Use Case
8.2Das Projekt aufsetzen
8.2.1Den GraphQL-Server aufsetzen
8.3Das initiale Schema aufsetzen
8.3.1Objekte im Schema auflösen
8.3.2Feld-Resolver
8.3.3Das Node-Muster
8.3.4Ergebnisse filtern durch Parameter
8.3.5Objekt-Relationen
8.3.6ID-Referenz-basierte Objekt-Relationen
9Implementierung mit Java II: Erweitertes Schema und Mutationen
9.1Selbstdefinierte Skalar- und Geschäftslogik-Felder
9.1.1Skalar-Typ in Schema und POJO definieren
9.1.2Die GraphQLScalarType-Implementierung
9.1.3Geschäftslogik-Felder und -Parameter
9.2Mutationen erstellen und Schemamodularisierung
9.2.1Kunden registrieren
9.2.2Adressen löschen
9.2.3Adressen erstellen: Input-Typen
9.2.4Bestellung erstellen: verschachtelte Input-Typen
Literaturverzeichnis
Index