Facebook hat GraphQL als Open Source veröffentlicht — eine Abfragesprache für APIs, die das Over-Fetching- und Under-Fetching-Problem von REST löst. Wie GraphQL funktioniert und wann man es einsetzen sollte.
Probleme mit REST-APIs im mobilen Zeitalter¶
REST-APIs, die für Webanwendungen entwickelt wurden, funktionieren oft nicht ideal für mobile Clients. Typische Probleme:
- Over-Fetching — der Endpoint liefert mehr Daten als der Client benötigt
- Under-Fetching — der Client muss mehrere Endpoints für einen einzigen Screen aufrufen
- API-Versionierung — jede Änderung erfordert einen neuen Endpoint oder eine neue Version
Facebook stieß 2012 auf diese Probleme beim Wechsel zur nativen mobilen App. GraphQL ist das Ergebnis interner Forschung und Entwicklung.
Wie GraphQL funktioniert¶
GraphQL ist eine Abfragesprache — der Client spezifiziert genau, welche Daten er benötigt:
query {
user(id: "123") {
name
email
posts(last: 5) {
title
createdAt
comments {
text
author { name }
}
}
}
}
Eine Anfrage, genau die Daten, die Sie brauchen. Keine unnötigen Übertragungen, keine Wasserfall-Requests.
Typsystem und Introspection¶
Ein GraphQL-Schema definiert das Typsystem der API:
type User {
id: ID!
name: String!
email: String
posts: [Post!]!
}
type Post {
id: ID!
title: String!
content: String
author: User!
}
type Query {
user(id: ID!): User
posts(limit: Int): [Post!]!
}
Introspection ermöglicht es Tools, automatisch Dokumentation zu generieren und IDE-Autocomplete bereitzustellen. GraphiQL — der interaktive Playground — ist das Killer-Feature für Entwickler.
GraphQL vs REST: wann welches verwenden¶
GraphQL ist kein Ersatz für REST in allen Szenarien:
- GraphQL — komplexe Datenmodelle, mobile Clients, viele Beziehungen zwischen Entitäten
- REST — einfaches CRUD, Datei-Upload/-Download, HTTP-Level-Caching, öffentliche APIs mit einfachen Endpoints
Für Enterprise-Anwendungen mit einem reichhaltigen Frontend empfehlen wir, GraphQL als primäre API-Schicht in Betracht zu ziehen.
Fazit: die Zukunft des API-Designs¶
GraphQL verändert die Art, wie wir über APIs denken. Die Verschiebung der Macht zum Client — der definiert, was er braucht — ist ein fundamentaler Wandel. Beobachten Sie das Ökosystem (Relay, Apollo) und ziehen Sie GraphQL für Ihr nächstes Projekt mit einem komplexen Datenmodell in Betracht.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns