Übersicht über GraphQL, API und Codebeispiele

Einführung in GraphQL

GraphQL ist eine von Facebook entwickelte Abfragesprache für APIs und verwendet die Schema Definition Language (SDL) zur Definition der Datenstruktur. Als Laufzeitumgebung zur Ausführung von Abfragen verarbeitet GraphQL API-Anfragen ausschließlich über HTTP POST mittels eines einzigen Endpunkts. Im Gegensatz zu traditionellen REST-APIs ermöglicht GraphQL Clients, exakt die benötigten Daten anzufordern, was zu einer effizienten und flexiblen Datenabfrage führt.

Vergleich zu REST-APIs

REST definiert mehrere Endpunkte für verschiedene Ressourcen und nutzt unterschiedliche HTTP-Methoden wie GET, POST, PUT und DELETE. GraphQL hingegen arbeitet mit einem einzigen Endpunkt und ausschließlich mit POST-Anfragen. Clients fordern genau die Daten an, die sie benötigen, was das Übertragungsvolumen reduziert und die Effizienz steigert.

Grundlegende Konzepte

Schema und Typen

Das Schema bildet das Herzstück von GraphQL und wird mittels SDL definiert. Es legt die Struktur der Daten und die verfügbaren Operationen fest. Typen repräsentieren verschiedene Datenstrukturen, einschließlich skalaren Typen wie Int, Float, String, Boolean sowie benutzerdefinierten Objekttypen.

Queries

Queries sind Leseoperationen, mit denen Clients Daten vom Server abrufen. Sie spezifizieren exakt, welche Felder benötigt werden, wodurch Über- und Unterabruf vermieden werden.

Mutations

Mutations dienen zum Ändern von Daten auf dem Server. Sie ermöglichen das Erstellen, Aktualisieren oder Löschen von Ressourcen.

Subscriptions

Subscriptions bieten die Möglichkeit, in Echtzeit auf Datenänderungen zu reagieren. Clients können sich auf bestimmte Ereignisse abonnieren und werden benachrichtigt, wenn diese eintreten.

Beispiel einer GraphQL-Query

Anfrage:

{
  message
}

Antwort:

{
  "data": {
    "message": "Hallo, GraphQL!"
  }
}

Tags

GraphQLAPIJavaScriptNodeJSExpressRESTvsGraphQLSDL

AVSW-Overview