golang - graphql platzi
En GraphQL, ¿cuál es el significado de "bordes" y "nodo"? (1)
Comencemos con una breve introducción en palabras simples
Especificaciones del relé GraphQl
- mecanismo para volver a buscar un objeto
- Descripción de cómo buscar a través de conexiones
- estructurar alrededor de mutaciones para hacerlas predecibles
Conexiones:
-
una conexión es una colección de objetos con metadatos como
edges
,pageInfo
... -
pageInfo contendrá
hasNextPage
,hasPreviousPage
,startCursor
,endCursor
-
hasNextPage
nos dirá si hay más bordes disponibles o si hemos llegado al final de esta conexión.
-
-
La matriz de registros: bordes
- edge le proporcionará flexibilidad para usar sus datos (nodo)
-
los bordes lo ayudarán para la paginación, hay Graphql
GraphQLList
pero sin funcionalidad como la paginación, solo con una matriz de objetos (datos)
-
Cada borde tiene
-
un
node
: un registro o un dato -
un
cursor
: cadena codificada en base64 para ayudar a retransmitir con paginación
-
un
https://facebook.github.io/relay/graphql/connections.htm
Nodo:
- cada nodo tendrá un cursor
-
puede establecer la cantidad de nodos que necesita mostrar usando los relé
connectionArgs(first, last, after, before)
Relay Pagination funciona como
-
Obtiene todos los objetos de la colección y devuelve un segmento basado en el
first/last
registro x, utilizado a través de connectionArgs -
after/before
se utilizan para indicar al servidor GraphQL el número de segmento requerido (datos) usando el cursor desde el nodo
Hay muchas más cosas a considerar como
nodeDefinitions
,
globalFieldId
,
nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification
Estoy consumiendo un punto final GraphQL particular y, aunque estoy proporcionando una estructura JSON limpia como consulta, cuando obtengo los resultados obtengo etiquetas de "bordes" y "nodos". Parece que está contaminando mis datos sin ningún beneficio obvio. ¿Por qué está ahí y es posible deshacerse de ellos para un análisis de datos más rápido y sencillo?