GraphQL ist eine Abfragesprache für APIs, die 2015 von Facebook entwickelt wurde. Anders als bei REST ruft der Client genau die Felder ab, die er braucht — in einer einzigen Anfrage.

Grundstruktur einer Query

query {
  user(id: 42) {
    name
    email
  }
}

Eine Mutation verändert Daten, eine Subscription empfängt Live-Updates:

mutation { createUser(name: "Anna") { id } }
subscription { newMessage { text } }

Schema und Typen

type User {
  id: ID!
  name: String!
  email: String
}

Ausrufezeichen (!) bedeutet: Feld ist Pflicht. ID, String, Int, Float, Boolean sind die eingebauten Skalartypen.

Variablen und Aliase

query GetUser($id: ID!) {
  user(id: $id) { name }
}

Praxis-Tipps

  • Ein Endpunkt (z.B. /graphql), eine POST-Anfrage — kein Overfetching und kein Underfetching.
  • Zum Testen eignen sich Tools wie GraphiQL oder Altair.
  • Fehler kommen als errors-Array in der Antwort, nicht als HTTP-Statuscode.

Verwandte Grundlagen: SQL-Befehle und Python-Befehle.