162 votes

Dans GraphQL, quelle est la signification de "bords" et "noeud"?

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, j'obtiens des balises "edge" et "node". Il semble que cela pollue mes données sans aucun avantage évident. Pourquoi est-il là et est-il possible de se débarrasser de ceux-ci pour une analyse plus rapide et plus simple des données?

98voto

p0k8_ Points 3951

Commençons par une Brève Introduction dans des mots simples


GraphQl Relais spécifications

  • mécanisme pour refetching un objet
  • description de la page par le biais de connexions
  • structure autour de mutations pour les rendre prévisibles

Connexions:

  • une connexion est une collection d'objets à l'aide de métadonnées comme l' edges, pageInfo...
  • pageInfo contiendra hasNextPage, hasPreviousPage, startCursor, endCursor

    • hasNextPage nous dira si il y a plus de bords disponibles, ou si nous avons atteint la fin de cette connexion.
  • La gamme de dossiers: les bords

    • les bords de fournir une plus grande flexibilité pour l'utilisation de vos données(nœud)
    • les bords de vous aider pour la pagination, Il est graphql GraphQLList mais avec aucune des fonctionnalités telles que la pagination, qu'avec l'ensemble des objets (données)
  • Chaque arête a

    • un node: un record ou de données
    • un cursor: base64 chaîne à l'aide de relais avec la pagination

https://facebook.github.io/relay/graphql/connections.htm

Nœud:

  • chaque nœud d'un curseur
  • vous pouvez définir le nombre de nœuds que vous avez besoin de montrer à l'aide de relais connectionArgs(first, last, after, before)

Relais de la Pagination fonctionne comme

  • Sélectionne tous les objets de la collection et de retourner une tranche basé sur l' first/last x enregistrements, utilisé thru connectionArgs

  • after/before sont utilisés pour indiquer à l'GraphQL serveur le nombre de tranche (données) à l'aide du curseur à partir du nœud

Il y a beaucoup plus de choses à prendre en considération, comme nodeDefinitions, globalFieldId, nodeInterfaces

https://github.com/graphql/graphql-relay-js#object-identification

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X