Fragments GraphQL, construits en direct

Fragments GraphQL

Fragments GraphQL : nommés, inline et conditions de type | We.Inc

Créez des fragments GraphQL dans un constructeur de requêtes en direct : fragments nommés pour la réutilisation, fragments inline pour les unions et interfaces, conditions de type, __typename et variables.

Un fragment GraphQL est un ensemble nommé et réutilisable de champs pour un type, écrit fragment Name on Type et inclus dans une requête avec ...Name. Un fragment inline, écrit ... on Type, n'a pas de nom et ne sélectionne des champs que lorsque le résultat est de ce type concret : c'est ainsi que l'on interroge les unions et les interfaces.

Formes de fragments

Cochez les champs voulus dans le constructeur et il écrit la requête pour vous, une fois avec un fragment nommé et une fois avec les champs écrits directement, pour que vous constatiez qu'elles demandent les mêmes données. Activez l'option des résultats de recherche pour ajouter des fragments inline sur une union.

Questions fréquentes

Les fragments réduisent-ils la taille des réponses ?

Non. Un fragment est une aide à l'écriture de la requête. Le serveur le développe, et la réponse est exactement la même que si vous aviez écrit les champs en entier. Si deux spreads sélectionnent le même champ, il n'apparaît qu'une fois.

Quand dois-je utiliser un fragment inline ?

Quand un champ renvoie une union ou une interface et que vous avez besoin de champs que seuls certains types membres possèdent. graphql.org l'illustre avec un hero qui peut être un Droid avec primaryFunction ou un Human avec height.

Un fragment peut-il être utilisé sur un autre type ?

Uniquement là où il peut s'appliquer. Un fragment sur une interface peut être inclus dans n'importe quel type objet qui l'implémente, mais un fragment sur User inclus dans une sélection de Post échoue à la validation.

Où placer les fragments dans le document ?

Au niveau supérieur du document, à côté des opérations, dans n'importe quel ordre. Chaque fragment défini doit être utilisé, sinon le serveur rejette le document comme invalide.

Des fragments nommés pour la réutilisation

Fragments inline et conditions de type

Schéma utilisé par le constructeur

Une union pour les résultats de recherche

SearchResult peut être un User ou une Photo, une sélection sur ce type a donc besoin de fragments inline pour atteindre les champs de l'un ou l'autre membre.

Lire une réponse d'union

Ce que renvoie la recherche

Chaque élément ne porte que les champs de sa propre branche, plus __typename.

Brancher sur __typename

Le nom du type est la manière sûre de distinguer les membres ; tester la présence d'un champ peut casser si un type gagne ce champ plus tard.

Constructeur de requêtes avec fragments

Champs User à sélectionner

Utiliser un fragment nommé (UserCard)

Ajouter des résultats de recherche (union avec fragments inline)

Requête

Copier la requête

{n} champ(s) sélectionné(s), {v} ligne(s) de requête

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site