REST (Representational State Transfer) GraphQL

Einfachheit und Caching oder flexible Abfragen?

REST ist der pragmatische Standard für öffentliche APIs, Microservices und alles, was von HTTP-Caching profitiert. GraphQL lohnt sich, wenn viele unterschiedliche Clients flexibel auf verschachtelte Daten zugreifen müssen. Für einfache CRUD-APIs ist GraphQL meist Overkill – für datenhungrige Frontends mit vielen Ansichten oft ein Gewinn.

8 KriterienFortgeschritten3 Min Lesezeit

Die beiden Seiten

01Kriterien

Wo sich die beiden unterscheiden

8 Kriterien im direkten Vergleich. Auf schmalen Bildschirmen wird die Tabelle zu Karten.
KriteriumREST (Representational State Transfer)GraphQL
GrundideeRessourcen mit festen EndpointsFlexible Queries auf ein Schema
EndpointsViele (/users, /posts, …)Einer (/graphql)
Datenmenge pro RequestOver-/Underfetching möglichClient bestimmt exakt die Felder
CachingHTTP-Caching out of the boxEigene Lösungen nötig
TypsystemOptional (z. B. OpenAPI)Schema ist Pflicht, stark typisiert
LernkurveFlach, überall dokumentiertSteiler (Schema, Resolver, Tooling)
Rate Limiting & MonitoringEinfach pro EndpointQuery-Komplexität muss bewertet werden
Typischer EinsatzÖffentliche APIs, Microservices, LLM-APIsKomplexe Frontends, Mobile Apps, BFF
  • Grundidee

    REST (Representational State Transfer)

    Ressourcen mit festen Endpoints

    GraphQL

    Flexible Queries auf ein Schema

  • Endpoints

    REST (Representational State Transfer)

    Viele (/users, /posts, …)

    GraphQL

    Einer (/graphql)

  • Datenmenge pro Request

    REST (Representational State Transfer)

    Over-/Underfetching möglich

    GraphQL

    Client bestimmt exakt die Felder

  • Caching

    REST (Representational State Transfer)

    HTTP-Caching out of the box

    GraphQL

    Eigene Lösungen nötig

  • Typsystem

    REST (Representational State Transfer)

    Optional (z. B. OpenAPI)

    GraphQL

    Schema ist Pflicht, stark typisiert

  • Lernkurve

    REST (Representational State Transfer)

    Flach, überall dokumentiert

    GraphQL

    Steiler (Schema, Resolver, Tooling)

  • Rate Limiting & Monitoring

    REST (Representational State Transfer)

    Einfach pro Endpoint

    GraphQL

    Query-Komplexität muss bewertet werden

  • Typischer Einsatz

    REST (Representational State Transfer)

    Öffentliche APIs, Microservices, LLM-APIs

    GraphQL

    Komplexe Frontends, Mobile Apps, BFF

02Gemeinsamkeiten

Wo beide dasselbe leisten

  • Beide sind ausgereift und produktionserprobt – die Wahl ist keine Wette auf eine Technologie.
  • Beide laufen über HTTP und lassen sich mit den üblichen Werkzeugen betreiben.
  • Beide brauchen Rate Limiting und Monitoring, nur an unterschiedlicher Stelle: pro Endpoint hier, pro Query-Komplexität dort.
  • Manche Plattformen bieten beide Schnittstellen parallel an – REST für Partner, GraphQL für die eigenen Apps.

Zwei Philosophien, ein Ziel

REST und GraphQL beantworten dieselbe Frage – wie sprechen Clients mit einem Server? – auf grundverschiedene Weise. REST modelliert die Welt als Ressourcen mit eigenen URLs, GraphQL als Datengraph, den Clients frei abfragen. Beide sind ausgereift, beide sind produktionserprobt. Die Entscheidung hängt davon ab, wer deine API konsumiert und wie unterschiedlich die Datenbedürfnisse der Clients sind.

REST: Der bewährte Standard

REST (Representational State Transfer) nutzt die Semantik, die HTTP ohnehin mitbringt: GET /users/42 liest einen Nutzer, POST /users legt einen an, DELETE /users/42 löscht ihn. Statuscodes, Header und Verben haben feste Bedeutungen – jede Middleware, jeder Proxy und jedes CDN versteht sie.

Die Stärken:

  • Caching gratis: GET-Antworten lassen sich mit Standard-HTTP-Mechanismen (ETags, Cache-Control) auf jeder Ebene cachen – vom Browser bis zum CDN
  • Einfachheit: Jeder Entwickler kennt REST, jedes Tool unterstützt es
  • Klare Grenzen: Rate Limiting, Monitoring und Zugriffskontrolle funktionieren pro Endpoint
  • Werkzeuge: Mit OpenAPI/Swagger lassen sich Schnittstellen dokumentieren und Client-Code generieren

Die Schwächen: Die festen Endpoints führen zu Overfetching (der Endpoint liefert Felder, die der Client nicht braucht) und Underfetching (der Client braucht mehrere Requests für eine Ansicht). Bei komplexen Frontends summiert sich das zu vielen Roundtrips. Teams behelfen sich mit Spezial-Endpoints oder Query-Parametern für Feldauswahl – was die API mit der Zeit unübersichtlich machen kann und genau das Problem ist, das GraphQL systematisch löst.

GraphQL: Der flexible Herausforderer

GraphQL, ursprünglich bei Facebook für die Mobile App entwickelt, dreht das Prinzip um: Es gibt einen einzigen Endpoint, und der Client beschreibt in einer Query exakt, welche Daten er braucht – inklusive verschachtelter Beziehungen:

query {
  user(id: 42) {
    name
    posts(last: 3) {
      title
      commentCount
    }
  }
}

Eine Anfrage, genau die benötigten Felder, keine Roundtrips.

Die Stärken:

  • Kein Over-/Underfetching: Der Client bestimmt die Antwortstruktur
  • Starkes Typsystem: Das Schema ist Vertrag und Dokumentation zugleich – Tools wie Autocomplete und Validierung entstehen daraus automatisch
  • Schnelle Frontend-Iteration: Neue Ansichten brauchen keine neuen Endpoints
  • Introspection: Die API ist selbstbeschreibend

Die Schwächen: Was bei REST trivial ist, wird bei GraphQL zum Projekt. Caching funktioniert nicht über HTTP-Standardmechanismen, weil alles über einen POST-Endpoint läuft – Client-Bibliotheken müssen normalisierte Caches selbst verwalten. Rate Limiting kann nicht einfach Requests zählen, sondern muss die Komplexität jeder Query bewerten (eine einzige verschachtelte Query kann so teuer sein wie hundert REST-Calls). Dazu kommen N+1-Probleme in Resolvern, die man mit Batching-Techniken wie DataLoader entschärfen muss.

Die KI-Perspektive: Warum LLM-APIs REST sind

Auffällig: Praktisch alle großen LLM-APIs – ob für Chat-Completions, Embeddings oder Bildgenerierung – sind REST-basiert. Das ist kein Zufall. Das Interaktionsmuster ist simpel: ein POST-Request mit Prompt und Parametern, eine (oft gestreamte) Antwort. Es gibt keinen verschachtelten Datengraphen, den Clients flexibel abfragen müssten – GraphQLs Kernstärke liefe ins Leere. REST plus Server-Sent Events für Token-Streaming ist die einfachste, kompatibelste Lösung. Auch für KI-Agenten und Tool-Calling sind REST-APIs mit OpenAPI-Beschreibung heute die gängige Integrationsform: Aus der Spezifikation lassen sich Tool-Definitionen für LLMs generieren.

GraphQL kann dagegen glänzen, wenn eine KI-Anwendung interne Daten aggregiert – etwa ein Dashboard, das Nutzerdaten, Modell-Metriken und Verlaufsdaten in einer Ansicht kombiniert.

Wann was?

Nimm REST, wenn:

  • Du eine öffentliche API anbietest, die viele fremde Clients nutzen
  • HTTP-Caching für Performance wichtig ist
  • Die Datenstruktur flach und ressourcenorientiert ist (klassisches CRUD)
  • Du Microservices intern verbindest und Einfachheit zählt
  • Deine API von LLMs/Agenten als Tool aufgerufen werden soll

Nimm GraphQL, wenn:

  • Viele verschiedene Clients (Web, iOS, Android) unterschiedliche Datenausschnitte brauchen
  • Deine Daten stark verschachtelt sind und Ansichten viele Beziehungen kombinieren
  • Frontend-Teams unabhängig vom Backend iterieren sollen
  • Du bereit bist, in Tooling und Betrieb (Caching, Query-Komplexität, Monitoring) zu investieren

Kombination statt Entweder-oder

In der Praxis schließen sich beide nicht aus. Ein verbreitetes Muster: GraphQL als Backend-for-Frontend, das intern REST-Microservices aggregiert. Die Frontends bekommen flexible Queries, die Services bleiben einfach und cachebar. Umgekehrt bieten manche Plattformen beide Schnittstellen parallel an – REST für einfache Integrationen und Partner, GraphQL für die eigenen, datenhungrigen Apps. Entscheidend ist nicht Ideologie, sondern die Frage: Wer konsumiert die API, und wie unterschiedlich sind die Bedürfnisse? Im Zweifel gilt: Starte mit REST – und führe GraphQL gezielt dort ein, wo der Bedarf an flexiblen Queries nachweislich besteht.

03Entscheidungshilfe

Was passt zu welchem Vorhaben?

Keine Gesamtnote – die Empfehlung hängt am Anwendungsfall.
  • Öffentliche API und Microservices

    REST (Representational State Transfer)

    REST ist der pragmatische Standard und profitiert direkt von HTTP-Caching.

  • Viele Clients mit unterschiedlichen Ansichten

    GraphQL

    GraphQL liefert je Client genau die benötigten verschachtelten Felder.

  • Einfache CRUD-Schnittstelle

    REST (Representational State Transfer)

    GraphQL bringt hier vor allem zusätzliche Komplexität.

04Begriffe

Die Begriffe hinter dem Vergleich

Cloud31.08.

REST (Representational State Transfer)

auch: Representational State Transfer

Architekturstil für Web-APIs basierend auf HTTP-Methoden.

2 MinEinsteiger

Cloud31.08.

GraphQL

Abfragesprache für gezielte Datenanforderungen in APIs.

2 MinFortgeschritten

05FAQ

Häufige Fragen

Ist GraphQL der Nachfolger von REST?

Nein. GraphQL ist eine Alternative für bestimmte Anwendungsfälle, kein Ersatz. REST bleibt der dominierende Stil für öffentliche APIs – gerade weil es auf Standard-HTTP-Semantik aufbaut und jede Infrastruktur (Proxies, CDNs, Load Balancer) damit umgehen kann.

Warum sind LLM-APIs wie die von OpenAI oder Anthropic REST-basiert?

LLM-APIs haben ein einfaches Interaktionsmuster: Prompt rein, Antwort raus – meist über einen einzigen POST-Endpoint mit Streaming. Die Stärken von GraphQL (flexible Abfragen auf verschachtelte Datengraphen) spielen hier keine Rolle. REST mit JSON und Server-Sent Events für Streaming ist simpler und universell kompatibel.

Kann ich REST und GraphQL kombinieren?

Ja, das ist sogar üblich. Viele Teams nutzen GraphQL als Backend-for-Frontend (BFF), das intern mehrere REST-Microservices bündelt. So bekommen Clients flexible Queries, während die Services selbst einfache REST-Schnittstellen behalten.

Was ist Over- und Underfetching?

Overfetching: Ein REST-Endpoint liefert mehr Felder, als der Client braucht. Underfetching: Ein Endpoint liefert zu wenig, der Client muss mehrere Requests machen (z. B. erst /users/1, dann /users/1/posts). GraphQL löst beides, weil der Client in einer Query exakt die benötigten Felder anfordert.

06Redaktion

Stand und Methodik

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Vergleiche veralten schneller als Begriffe. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald der Vergleich nach seiner letzten Änderung geprüft wurde.

07Mehr Vergleiche

Passt thematisch dazu

CloudEntscheidung

Convolutional Neural Network Vision Transformer (ViT)

Dateneffizienz oder Skalierung?

CNNs bleiben die erste Wahl bei kleinen bis mittleren Datensätzen, knappen Rechenbudgets und Edge-Deployments – ihre eingebauten Annahmen über Bilder machen sie dateneffizient und schnell. Vision Transformer gewinnen, sobald große Datenmengen oder starkes Pretraining verfügbar sind, und sind der Standard-Bildencoder in multimodalen Foundation Models. In der Praxis verschwimmen die Grenzen: Hybride Architekturen kombinieren Faltungen mit Attention und holen oft das Beste aus beiden Welten.

8 Kriterien · 4 Min
DatenEntscheidung

Data Warehouse Data Lake

Verlässliche Kennzahlen oder günstiger Rohdatenspeicher?

Für Business Intelligence, Reporting und verlässliche Kennzahlen führt kein Weg am Data Warehouse vorbei. Wer Rohdaten aller Formate günstig sammeln und für Machine Learning nutzen will, braucht einen Data Lake. Die meisten datengetriebenen Unternehmen betreiben beides – oder setzen auf ein Lakehouse, das beide Ansätze zusammenführt.

8 Kriterien · 3 Min
CloudEntscheidung

Kubernetes Serverless

Kontrolle oder kein Betrieb?

Serverless gewinnt bei ereignisgesteuerten, kurzlebigen Workloads mit schwankender Last – kein Betrieb, keine Idle-Kosten. Kubernetes gewinnt bei dauerhaften, komplexen oder GPU-intensiven Workloads, wo Kontrolle und Portabilität zählen. Viele Teams fahren zweigleisig: Kubernetes für die Kernservices, Serverless für Event-Handler und Glue-Code.