Je consomme un noeud final GraphQL particulier et bien que je fournisse une structure JSON propre sous forme de requête, lorsque j'obtiens les résultats, les balises "edge" et "node" sont générées. Il semble que cela pollue mes données sans aucun avantage évident. Pourquoi est-il là et est-il possible de s'en débarrasser pour une analyse plus rapide et plus simple des données?
Commençons par une brève introduction en termes 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 d'enregistrements: bords
GraphQLList
mais sans fonctionnalité telle que la pagination, uniquement avec un tableau d'objetsChaque bord a
node
: un enregistrement ou une donnéecursor
: base64 pour aider à relayer avec la paginationhttps://facebook.github.io/relay/graphql/connections.htm
Noeud:
connectionArgs(first, last, after, before)
La pagination de relais fonctionne comme
Récupère tous les objets de la collection et retourne une tranche basée sur le first/last
x enregistrements, utilisés via connectionArgs
after/before
sont utilisés pour indiquer au serveur GraphQL le nombre de tranches (données) requises à l’aide du curseur depuis le noeud
Il y a beaucoup plus de choses à considérer comme nodeDefinitions
, globalFieldId
, nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification