【问题标题】:GraphQL Relay Connections Specification for ApolloApollo 的 GraphQL 中继连接规范
【发布时间】:2018-06-03 03:20:29
【问题描述】:

我正在尝试在 Apollo 中实现中继连接,但规范存在一些问题。

架构如下所示:

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(first: 10) 查询时,PageInfo.endCursor 指的是第 10 条边还是第 100 条?

更多问题:

1.我是否应该再次查询以获取hasPreviousPage,hasNextPage。

2.有没有类似结构的代码示例(带有解析器)?

3.有graphql聊天(gitter、irc)吗?

【问题讨论】:

    标签: graphql relayjs apollo relay apollo-server


    【解决方案1】:

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

    1. 一般来说,像这样的基于光标的分页不是双向的。所以你不能同时知道hasNextPage 和hasPreviousPage。但是,无论您要获取哪个,都不需要在另一个查询中发出它,在一个查询中获取尽可能多的数据,这就是重点!

    2. 现在肯定有很多 Relay 分页的例子,我不知道有什么。

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

    【讨论】:

    猜你喜欢
    • 2021-09-23
    • 2016-12-09
    • 2018-02-27
    • 2021-04-26
    • 2021-03-21
    • 2022-10-07
    • 1970-01-01
    • 2019-12-25
    • 2021-02-13
    相关资源
    最近更新 更多