Apollo的

时间:2017-12-20 14:24:45

标签: graphql relayjs apollo relay apollo-server

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

Schema看起来像这样:

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)?

1 个答案:

答案 0 :(得分:0)

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

  1. 一般来说,像这样的基于光标的分页不是双向的。因此,您无法同时了解hasNextPagehasPreviousPage。但是无论你拿哪个,你都不需要在另一个查询中发出它,在一个查询中获取尽可能多的数据,这就是重点!

  2. 到目前为止,必须有很多关于接力分页的例子,我不知道是不是最重要的。

  3. Apollo和GraphQL本身都有一个松散的团队。 apollographql.slack.comgraphql.slack.com