我正在使用特定的GraphQL端点,虽然我提供了一个干净的JSON结构作为查询,当我得到结果时,我得到“边缘”和 “node”标签。似乎它正在污染我的数据而没有明显的好处。它为什么存在,是否有可能摆脱那些更快更简单的数据解析?
答案 0 :(得分:35)
让我们以简单的词语简短介绍
GraphQl中继规范
<强>连接:强>
edges
,pageInfo
... pageInfo将包含hasNextPage
,hasPreviousPage
,startCursor
,endCursor
hasNextPage
会告诉我们是否有更多边可用,或者我们是否已达到此连接的终点。记录数组:边
GraphQLList
但没有分页等功能,只有对象数组(数据)每条边都有
node
:记录或数据cursor
:base64编码的字符串,以帮助中继分页https://facebook.github.io/relay/graphql/connections.htm
<强>节点强>
connectionArgs(first, last, after, before)
Relay Pagination的工作原理为
获取集合中的所有对象,并根据通过connectionArgs
first/last
x记录返回切片
after/before
用于向GraphQL服务器指示使用来自节点的游标所需的切片(数据)的数量
还有很多事情要考虑,例如nodeDefinitions
,globalFieldId
,nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification