GraphQL
Definition
GraphQL ist eine von Facebook entwickelte Abfragesprache für APIs sowie eine serverseitige Laufzeitumgebung für die Ausführung dieser Abfragen. Im Gegensatz zu REST-APIs erlaubt GraphQL es dem Client, genau die Daten anzufordern, die er benötigt – nicht mehr und nicht weniger. GraphQL wird über einen einzigen Endpunkt angesprochen und gibt typisierte Antworten basierend auf einem Schema zurück.
Erläuterung
GraphQL löst zwei häufige Probleme von REST-APIs: Overfetching (zu viele Daten werden zurückgegeben) und Underfetching (mehrere Anfragen nötig, um alle benötigen Daten zu bekommen). Das streng typisierte Schema dient gleichzeitig als Dokumentation und ermöglicht powerful Entwicklertools wie GraphiQL oder Apollo Studio. Subscriptions ermöglichen Echtzeit-Updates durch WebSocket-Verbindungen. GraphQL wird häufig in Headless-CMS-Kontexten (z. B. WPGraphQL für WordPress, Contentful GraphQL API) und in komplexen Frontend-Anwendungen mit Apollo Client oder urql eingesetzt. Ein Nachteil ist die komplexere Implementierung und das Caching, da alle Anfragen über denselben POST-Endpunkt laufen und HTTP-Caching schwieriger zu realisieren ist.