Apollo 的 GraphQL 中继连接规范
GraphQL Relay Connections Specification for Apollo
我正在尝试在 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
}
假设我在数据库中有 100 个用户;
当我使用 limit ex.users(first: 10) 查询时,PageInfo.endCursor 指的是第 10 条边还是第 100 条边?
更多问题:
1.Should 我再次查询以获取 hasPreviousPage、hasNextPage。
2.Are 是否有结构相似的代码示例(带有解析器)?
3.Are 有任何 graphql 聊天(gitter,irc)吗?
endCursor指的是第10个,即等于结果中最后一条边的游标字段
一般来说,像这样的基于光标的分页不是双向的。所以你不可能同时知道 hasNextPage
和 hasPreviousPage
。但是无论你获取哪个,你都不需要在另一个查询中发出它,在一个查询中获取尽可能多的数据,这就是重点!
Relay 分页的例子一定有很多,我脑子里想不出来了。
Apollo 和 GraphQL 本身都有一个松散的团队。 apollographql.slack.com
和 graphql.slack.com
我正在尝试在 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
}
假设我在数据库中有 100 个用户; 当我使用 limit ex.users(first: 10) 查询时,PageInfo.endCursor 指的是第 10 条边还是第 100 条边?
更多问题:
1.Should 我再次查询以获取 hasPreviousPage、hasNextPage。
2.Are 是否有结构相似的代码示例(带有解析器)?
3.Are 有任何 graphql 聊天(gitter,irc)吗?
endCursor指的是第10个,即等于结果中最后一条边的游标字段
一般来说,像这样的基于光标的分页不是双向的。所以你不可能同时知道
hasNextPage
和hasPreviousPage
。但是无论你获取哪个,你都不需要在另一个查询中发出它,在一个查询中获取尽可能多的数据,这就是重点!Relay 分页的例子一定有很多,我脑子里想不出来了。
Apollo 和 GraphQL 本身都有一个松散的团队。
apollographql.slack.com
和graphql.slack.com