GraphQL Fragments, live gebaut

GraphQL Fragments

GraphQL Fragments: benannt, inline und Typbedingungen | We.Inc

Baue GraphQL Fragments in einem Live-Query-Builder: benannte Fragments zur Wiederverwendung, Inline Fragments für Unions und Interfaces, Typbedingungen, __typename und Variablen.

Ein GraphQL Fragment ist eine benannte, wiederverwendbare Menge von Feldern für einen Typ, geschrieben als fragment Name on Type und mit ...Name in eine Query eingebunden. Ein Inline Fragment, geschrieben als ... on Type, hat keinen Namen und wählt Felder nur aus, wenn das Ergebnis genau dieser konkrete Typ ist. So fragst du Unions und Interfaces ab.

Formen von Fragments

Hake im Builder die gewünschten Felder an, und er schreibt die Query für dich, einmal mit einem benannten Fragment und einmal mit den Feldern inline, damit du siehst, dass beide dieselben Daten abfragen. Schalte die Option für Suchergebnisse ein, um Inline Fragments über eine Union hinzuzufügen.

Häufige Fragen

Machen Fragments Antworten kleiner?

Nein. Ein Fragment ist eine Schreibhilfe für die Query. Der Server expandiert es, und die Antwort sieht genau so aus, als hättest du die Felder ausgeschrieben. Wählen zwei Spreads dasselbe Feld aus, erscheint es einmal.

Wann muss ich ein Inline Fragment verwenden?

Wenn ein Feld eine Union oder ein Interface zurückgibt und du Felder brauchst, die nur einige Mitgliedstypen haben. graphql.org zeigt das an einem hero, der ein Droid mit primaryFunction oder ein Human mit height sein kann.

Kann ein Fragment auf einem anderen Typ verwendet werden?

Nur dort, wo es passen kann. Ein Fragment auf einem Interface lässt sich in jedem Objekttyp spreaden, der es implementiert, aber ein Fragment auf User, das in einer Post-Auswahl gespreadet wird, besteht die Validierung nicht.

Wo stehen Fragments im Dokument?

Auf der obersten Ebene des Dokuments, neben den Operationen, in beliebiger Reihenfolge. Jedes definierte Fragment muss verwendet werden, sonst lehnt der Server das Dokument als ungültig ab.

Benannte Fragments zur Wiederverwendung

Inline Fragments und Typbedingungen

Schema, das der Builder verwendet

Eine Union für Suchergebnisse

SearchResult kann ein User oder ein Photo sein, daher braucht eine Auswahl darauf Inline Fragments, um an Felder eines der beiden Mitglieder zu kommen.

Eine Union-Antwort lesen

Was die Suche zurückgibt

Jedes Element enthält nur die Felder seines eigenen Zweigs, dazu __typename.

Verzweigen nach __typename

Der Typname ist der sichere Weg, die Mitglieder zu unterscheiden. Die Prüfung auf ein Feld kann brechen, wenn ein Typ dieses Feld später bekommt.

Fragment-Query-Builder

Auszuwählende User-Felder

Ein benanntes Fragment verwenden (UserCard)

Suchergebnisse hinzufügen (Union mit Inline Fragments)

Query

Query kopieren

{n} Feld(er) ausgewählt, {v} Zeile(n) Query

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap