GraphQL vs REST: Wie sie sich wirklich unterscheiden

GraphQL vs REST

GraphQL vs REST: dieselben Daten auf beide Arten abgerufen | We.Inc

Vergleiche GraphQL und REST anhand derselben Daten, auf beide Arten abgerufen: Anzahl der Requests, Over-Fetching, Caching, Fehlerrückgabe und eine Tabelle für die Entscheidung.

REST stellt viele URLs bereit, eine pro Ressource, und der Server entscheidet, was jede Antwort enthält. GraphQL stellt einen einzigen Endpoint bereit, meist /graphql, an den der Client eine Query schickt, die genau die gewünschten Felder nennt. REST bekommt HTTP-Caching über die URL gratis; GraphQL spart Roundtrips und lässt ungenutzte Felder weg, auf Kosten von mehr Arbeit auf dem Server.

Auf einen Blick

Der Vergleich unten ruft denselben Bildschirm voller Daten auf beide Arten ab. Wähle ein Szenario, um die REST-Aufrufe eines Clients neben der einen GraphQL-Query zu sehen, die sie ersetzt, und was jede Antwort weglässt oder zusätzlich mitliefert.

Häufige Fragen

Ist GraphQL schneller als REST?

Nicht von allein. Es kann Roundtrips und Payload-Größe für Screens reduzieren, die verknüpfte Daten brauchen, aber jede Query kann den Server beim Auflösen mehr kosten. Ein gut gestalteter REST-Endpoint für einen Screen kann genauso schnell sein.

Warum kommt ein GraphQL-Fehler mit Status 200 zurück?

Ein Feld kann scheitern, während andere gelingen, daher gibt der Server die vorhandenen Daten plus ein errors-Array zurück. Die Empfehlungen für GraphQL over HTTP nutzen 2xx für Teilerfolg; Server, die mit application/graphql-response+json antworten, nutzen 400, wenn ein Request die Validierung nicht besteht.

Können GraphQL-Antworten von einem CDN gecacht werden?

Ja, wenn Queries per GET gesendet werden, was Server nur für Queries erlauben dürfen. Lange Queries können URL-Limits überschreiten, daher nutzen Teams Persisted Queries, die einen kurzen Hash statt des ganzen Dokuments senden.

Kann ich beides in einem Produkt verwenden?

Viele Teams tun das. Datei-Uploads, Webhooks und einfache öffentliche Ressourcen bleiben oft REST-Routen, während App-Screens über eine GraphQL-Schicht lesen, die darunter dieselben Services aufrufen kann.

Braucht GraphQL eine eigene Datenbank?

Nein. Ein GraphQL-Server ist eine Schicht aus Resolvern, kleinen Funktionen, die jedes Feld dort abrufen, wo die Daten liegen: in einer Datenbank, einem REST-Service oder einer Datei. Das Schema beschreibt Formen, keine Speicherung.

Over-Fetching und Under-Fetching

Caching funktioniert anders

Fehler und Statuscodes

Was du wählen solltest

Entscheidungstabelle

Was über die Leitung geht

Ein GraphQL-Request mit fetch

Jede Operation ist ein POST von JSON mit den Schlüsseln query und variables an den einen Endpoint. Der Accept-Header fordert den neueren GraphQL-Antworttyp an, mit einfachem JSON als Fallback.

Eine GraphQL-Teilantwort

Ein Feld ist fehlgeschlagen, daher ist es null, und der errors-Eintrag benennt es mit path. Die restlichen Daten sind trotzdem angekommen.

Profil mit Beiträgen

REST braucht einen zweiten Aufruf für die Beiträge, und beide Antworten enthalten jedes Feld, das der Server mitliefert. Die GraphQL-Query gibt nur Name, Avatar und drei Beitragstitel zurück.

Nur Namen

Für eine einfache Liste ist der REST-Aufruf so oder so ein Request, aber er sendet ganze Nutzerdatensätze. GraphQL sendet nur die zwei angefragten Felder.

Beitrag mit Kommentaren und Autoren

Ohne eigenen Endpoint durchläuft REST den Baum eine Ebene pro Request, und das Abrufen jedes Kommentarautors kann einen weiteren Aufruf pro Kommentar bedeuten. GraphQL verschachtelt den ganzen Baum in einer Query.

Einen Beitrag erstellen

Schreibvorgänge sehen ähnlich aus: jeweils ein Request. REST nutzt die POST-Methode auf einer Collection-URL; GraphQL sendet eine Mutation, ebenfalls als HTTP-POST, und wählt, welche Felder des neuen Beitrags zurückkommen.

Dieselben Daten, auf beide Arten

Szenario wählen

REST-Requests

GraphQL-Query

REST-Requests kopieren

GraphQL-Query kopieren

REST: {n} Request(s). GraphQL: {v} Request.

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap