用于 Java-GraphQL 服务器的 Java 中基于中继的分页

ope*_*eek 5 java pagination relay graphql graphql-java

我已经使用GraphQL-Java-tools实现了一个基于 Java 的 GraphQL 服务器。现在我需要使用我拥有的 Java-GraphQL 服务器实现基于 Relay 的分页。

我在那里找不到任何有用的东西。任何人都可以帮我指出正确的地方来找到如何在 Java_GraphQL 服务器中实现基于中继的分页吗?

感谢期待。

小智 2

graphql-java-tools在版本5.4.0中添加了对 Relay 的支持。如文档示例@connection中所述,您可以在架构中使用新指令:

type Query {
    users(first: Int, after: String): UserConnection @connection(for: "User")
}

type User {
    id: ID!
    name: String
}
Run Code Online (Sandbox Code Playgroud)

Connection<T>并在解析器中返回 a :

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

尽管如此,超出简单列表的示例(例如,当必须从数据库中获取边时)仍然很少,并且是迄今为止graphql-javaSimpleListConnection提供的唯一实现。

  • ...这非常遗憾,因为这个“SimpleListConnection”希望您提供所包含实体的完整列表...这在请求数据库方面会适得其反! (3认同)