用于 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 中基于中继的分页的主要内容,如果未能解决你的问题,请参考以下文章

用于Java代码的免费地理定位IP服务[关闭]

用于 UDP NAT 打孔的 PHP 和 Java...?

用于 Java Web 应用程序的最佳 Amazon 服务器实例

用于 REST 服务的 Java 中等效的异步页面

用于集成测试的 Java 测试项目

用于开发 iPhone 推送通知服务的 Google App Engine 的 Java 替代方案是啥?