首页 文章

在GraphQL中,“edge”和“node”的含义是什么?

提问于
浏览
43

我正在使用一个特定的GraphQL endpoints ,虽然我提供了一个干净的JSON结构作为查询,当我得到结果时,我得到“edge”和“node”标签 . 似乎它正在污染我的数据而没有明显的好处 . 为什么它存在,是否有可能摆脱那些更快,更简单的数据解析?

1 回答

  • 28

    Let's Begin with a Short Introduction in simple words


    GraphQl Relay specifications

    • 用于重新获取对象的机制

    • 如何翻页连接的说明
      围绕突变的

    • 结构使其具有可预测性

    Connections:

    • 连接是具有元数据的对象的集合,例如 edgespageInfo ...

    • pageInfo将包含 hasNextPagehasPreviousPagestartCursorendCursor

    • hasNextPage 将告诉我们是否有更多可用边缘,或者我们是否已达到此连接的末尾 .

    • 记录数组:边缘

    • edge将为您提供使用数据的灵活性(节点)

    • edge将帮助你进行分页,有graphql GraphQLList 但没有pagination等功能,只有对象数组(数据)

    • 每条边都有

    • a node :记录或数据

    • a cursor :base64编码的字符串,以帮助中继分页

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

    Node:

    • 每个节点都有一个游标

    • 您可以使用继电器设置需要显示的节点数 connectionArgs(first, last, after, before)

    Relay Pagination works as

    • 获取集合中的所有对象并返回基于 first/last x记录的切片,通过connectionArgs使用

    • after/before 用于向GraphQL服务器指示使用节点中的游标所需的切片(数据)的数量

    还有很多事情要考虑 nodeDefinitionsglobalFieldIdnodeInterfaces

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

相关问题