Magento 2 GraphQL Tutorial: Eigene Queries & Mutations lernen | Mironsoft
Magento 2 GraphQL: Das komplette Tutorial für eigene Queries, Mutations und Performance
GraphQL in Magento 2 von Grund auf lernen: Schema-Architektur, eigene Queries und Mutations schreiben, Core-Typen erweitern, Authentifizierung und Fehlerbehandlung im Resolver, N+1-Probleme mit Batch-Resolvern lösen, Caching, Datei-Uploads und ACL - demonstriert an einer durchgehenden Veranstaltungen-API.
Das lernst du
- Warum Magento GraphQL neben REST und SOAP anbietet und wie schema.graphqls, Resolver und DataProvider zusammenspielen
- Wie man in einem eigenen Modul eine eigene Query mit eigenen Typen, Pflichtfeldern, Listen und Input-Typen definiert
- Wie man bestehende Core-Typen mit extend type um eigene Felder erweitert, statt sie zu duplizieren
- Wie man Schritt für Schritt eine eigene Veranstaltungen-API baut: Schema mit Pagination, DataProvider, Filter und Sortierung, Einzelabfrage per Identifier
- Wie man eine geschützte Mutation baut: Kunden-Token und Customer-Context prüfen, GraphQlInputException und GraphQlAuthorizationException richtig einsetzen
- Wie man das N+1-Problem erkennt und mit Batch-Resolvern löst, GraphQL-Antworten cached und Datei-Uploads sowie ACL für eigene Endpunkte umsetzt
- Wie man GraphQL-Queries testet und die häufigsten Fehler (Schema-Cache, fehlende Resolver-Registrierung, falsche Typ-Deklaration) systematisch debuggt
Voraussetzungen
- Solide PHP-Kenntnisse und ein Grundverständnis der Magento-2-Modulstruktur werden vorausgesetzt - das eigenständige Modul-Grundgerüst wird in Block 2 trotzdem kurz wiederholt, bevor es an schema.graphqls und Resolver selbst geht
Kapitel dieser Serie
- 1 Was ist GraphQL? Warum Magento GraphQL neben REST und SOAP anbietet ~6 Min. Lesezeit
- 2 Magento-GraphQL-Architektur im Überblick: schema.graphqls, Resolver, DataProvider ~7 Min. Lesezeit
- 3 Die eingebaute GraphQL-Schnittstelle nutzen: Endpoint, erste Abfragen mit einem GraphQL-Client ~6 Min. Lesezeit
- 4 Voraussetzungen: eigenes Modul, schema.graphqls-Grundgerüst anlegen ~6 Min. Lesezeit
- 5 Eine erste eigene Query definieren und einen Resolver dazu schreiben ~7 Min. Lesezeit
- 6 Skalare und komplexe Typen, eigene Input-Typen definieren ~8 Min. Lesezeit
- 7 Pflichtfelder, Nullable-Felder, Listen im Schema richtig modellieren ~7 Min. Lesezeit
- 8 Core-Typen erweitern: extend type statt eigene Typen zu duplizieren ~7 Min. Lesezeit
- 9 Eigene Felder an Produkt, Kategorie oder Kunde anhängen ~8 Min. Lesezeit
- 10 Das ResolverInterface im Detail: Context, Field, Args, Value verstehen ~8 Min. Lesezeit
- 11 Projektvorstellung: eine Veranstaltungen-GraphQL-API, Modul- und Datenmodell ~9 Min. Lesezeit
- 12 Schema für Veranstaltungen definieren: Typ, Query, Pagination nach dem Connection-Pattern ~8 Min. Lesezeit
- 13 DataProvider und Resolver für die Veranstaltungsliste implementieren ~9 Min. Lesezeit
- 14 Filter und Sortierung in der GraphQL-Query anbieten ~8 Min. Lesezeit
- 15 Eine einzelne Veranstaltung per Identifier abfragen ~7 Min. Lesezeit
- 16 Was sind Mutations? Eine erste eigene Mutation schreiben ~8 Min. Lesezeit
- 17 Authentifizierung verstehen: Kunden-Token nutzen, den Customer-Context im Resolver prüfen ~8 Min. Lesezeit
- 18 Eine geschützte Mutation bauen: Veranstaltung als Favorit markieren (nur eingeloggte Kunden) ~8 Min. Lesezeit
- 19 Fehlerbehandlung: GraphQlInputException und GraphQlAuthorizationException richtig einsetzen ~8 Min. Lesezeit
- 20 Das N+1-Problem verstehen und mit Batch-Resolvern lösen ~9 Min. Lesezeit
- 21 Caching von GraphQL-Antworten und der Full Page Cache ~8 Min. Lesezeit
- 22 Datei-Uploads über GraphQL ~8 Min. Lesezeit
- 23 ACL und Berechtigungen für eigene GraphQL-Endpunkte ~8 Min. Lesezeit
- 24 GraphQL-Queries testen: Tools und automatisierte Tests ~8 Min. Lesezeit
- 25 Häufige Fehler und wie man sie debuggt (Schema-Cache, fehlende Resolver-Registrierung, falsche Typ-Deklaration) ~9 Min. Lesezeit
- 26 Zusammenfassung: Spickzettel aller wichtigsten GraphQL-Patterns aus dieser Serie ~7 Min. Lesezeit