用于 Java-GraphQL 服务器的 Java 中基于中继的分页
Posted
技术标签:
【中文标题】用于 Java-GraphQL 服务器的 Java 中基于中继的分页【英文标题】:Relay based Pagination in Java for Java-GraphQL server 【发布时间】:2018-02-01 07:32:28 【问题描述】:我已经使用GraphQL-Java-tools 实现了一个基于 java 的 GraphQL 服务器。现在我需要使用我拥有的 Java-GraphQL 服务器来实现基于 Relay 的分页。
我找不到任何有用的东西。谁能帮我指出正确的地方来找到如何在 Java_GraphQL 服务器中实现基于中继的分页?
感谢期待。
【问题讨论】:
【参考方案1】:graphql-java-tools 在发行版5.4.0 中添加了对 Relay 的支持。正如documentation example 中所述,您可以在架构中使用新的@connection
指令:
type Query
users(first: Int, after: String): UserConnection @connection(for: "User")
type User
id: ID!
name: String
并在解析器中返回Connection<T>
:
class QueryResolver implements GraphQLQueryResolver
public Connection<User> users(int first, String after, DataFetchingEnvironment env)
return new SimpleListConnection<>(Collections.singletonList(new User(1L, "Luke"))).get(env);
不过,除了简单列表之外的示例(例如,当必须从数据库中获取边时)仍然很少,SimpleListConnection
是迄今为止graphql-java 提供的唯一实现。
【讨论】:
...这很可惜,因为SimpleListConnection
希望您提供所附实体的完整列表...这在请求数据库方面会适得其反!!以上是关于用于 Java-GraphQL 服务器的 Java 中基于中继的分页的主要内容,如果未能解决你的问题,请参考以下文章