Apollo的GraphQL中继连接规范

问题描述 投票:0回答:1

我正在尝试在Apollo中实现Relay Connections,但我在规范方面遇到了一些问题。

架构看起来像这样:

type PageInfo {
  startCursor: String!,
  endCursor: String!,
  hasNextPage: Boolean!,  
  hasPreviousPage: Boolean!
}

type User : Node {
  id: ID!
  firstname: String
  lastname: String
}

type UserConnection : Connection {
  pageInfo: PageInfo!
  edges: [UserEdge!]!
}

type UserEdge : Edge {
  cursor: String!
  node: User!
}

extend type Query {
  users(first: Int, after: ID, order: String): UserConnection
}

假设我在db中有100个用户;当我使用limit ex.users查询时(第一个:10),PageInfo.endCursor指的是第10个边缘还是第100个边缘?

更多问题:

1.我应该进行另一个查询来获取hasPreviousPage,hasNextPage。

2.是否有任何具有类似结构的代码示例(带有解析器)?

3.有没有graphql聊天(gitter,irc)?

graphql relayjs apollo relay apollo-server
1个回答
0
投票

endCursor指的是第10个,即它等于结果中最后一个边的光标字段。

  1. 一般来说,像这样的基于光标的分页不是双向的。所以你不能知道hasNextPagehasPreviousPage。但无论你拿哪个,你都不需要在另一个查询中发出它,在一个查询中获取尽可能多的数据,这就是重点!
  2. 到目前为止,必须有很多关于Relay的分页的例子,我不知道我的头脑。
  3. Apollo和GraphQL本身都有一个松散的团队。 apollographql.slack.comgraphql.slack.com
© www.soinside.com 2019 - 2024. All rights reserved.