Je consomme un point de terminaison GraphQL particulier et bien que je fournisse une structure JSON propre en tant que requête, lorsque j'obtiens les résultats, j'obtiens des balises "bords" et "nœud". Il semble que cela pollue mes données sans avantage évident. Pourquoi existe-t-il et est-il possible de s'en débarrasser pour une analyse plus rapide et plus simple des données?
100
Réponses:
Commençons par une courte introduction en mots simples
Spécifications du relais GraphQl
Connexions:
edges
,pageInfo
...PAGEINFO contiendra
hasNextPage
,hasPreviousPage
,startCursor
,endCursor
hasNextPage
nous dira s'il y a plus d'arêtes disponibles, ou si nous avons atteint la fin de cette connexion.Le tableau des enregistrements: les arêtes
GraphQLList
mais sans fonctionnalité telle que la pagination, uniquement avec un tableau d'objets (données)Chaque bord a
node
: un enregistrement ou une donnéecursor
: chaîne encodée en base64 pour aider à relayer avec la paginationhttps://facebook.github.io/relay/graphql/connections.htm
Nœud:
connectionArgs(first, last, after, before)
La pagination de relais fonctionne comme
Récupère tous les objets de la collection et renvoie une tranche basée sur les
first/last
enregistrements x, utilisée via connectionArgsafter/before
servent à indiquer au serveur GraphQL le nombre de tranches (données) requises à l'aide du curseur du nœudIl y a beaucoup de choses à considérer plus comme
nodeDefinitions
,globalFieldId
,nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification
la source
each node will have a cursor
, plutôteach edge will have a cursor
, référez-vous à blog.apollographql.com