GraphQL-fragments, live opgebouwd

GraphQL-fragments

GraphQL-fragments: named, inline en type conditions | We.Inc

Bouw GraphQL-fragments in een live querybuilder: named fragments voor hergebruik, inline fragments voor unions en interfaces, type conditions, __typename en variabelen.

Een GraphQL-fragment is een benoemde, herbruikbare set velden voor één type, geschreven als fragment Name on Type en in een query opgenomen met ...Name. Een inline fragment, geschreven als ... on Type, heeft geen naam en selecteert alleen velden als het resultaat dat concrete type is. Zo bevraagt u unions en interfaces.

Vormen van fragments

Vink in de builder de velden aan die u wilt en hij schrijft de query voor u, één keer met een named fragment en één keer met de velden inline, zodat u ziet dat ze dezelfde data opvragen. Zet de optie voor zoekresultaten aan om inline fragments over een union toe te voegen.

Veelgestelde vragen

Maken fragments responses kleiner?

Nee. Een fragment is een schrijfhulpmiddel voor de query. De server vouwt het uit en de response ziet er precies zo uit alsof u de velden had uitgetypt. Als twee spreads hetzelfde veld selecteren, verschijnt het één keer.

Wanneer moet ik een inline fragment gebruiken?

Als een veld een union of interface teruggeeft en u velden nodig hebt die alleen sommige lidtypes hebben. graphql.org laat dit zien met een hero die een Droid met primaryFunction of een Human met height kan zijn.

Kan een fragment op een ander type worden gebruikt?

Alleen waar het van toepassing kan zijn. Een fragment op een interface kan worden gespreid binnen elk objecttype dat die interface implementeert, maar een fragment op User binnen een Post-selectie faalt bij de validatie.

Waar staan fragments in het document?

Op het hoogste niveau van het document, naast de operaties, in willekeurige volgorde. Elk gedefinieerd fragment moet worden gebruikt, anders wijst de server het document af als ongeldig.

Named fragments voor hergebruik

Inline fragments en type conditions

Schema dat de builder gebruikt

Een union voor zoekresultaten

SearchResult kan een User of een Photo zijn, dus een selectie erop heeft inline fragments nodig om velden van elk lid te bereiken.

Een union-response lezen

Wat de zoekopdracht teruggeeft

Elk item bevat alleen de velden van zijn eigen tak, plus __typename.

Vertakken op __typename

De typenaam is de veilige manier om de leden uit elkaar te houden; controleren op een veld kan breken als een type dat veld later krijgt.

Querybuilder voor fragments

Te selecteren User-velden

Een named fragment gebruiken (UserCard)

Zoekresultaten toevoegen (union met inline fragments)

Query

Query kopiëren

{n} veld(en) geselecteerd, {v} regel(s) query

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap