对于最新稳定版本,请使用 Spring GraphQL 2.0.0spring-doc.cadn.net.cn

代码生成

你可以使用诸如DGS代码生成等工具来生成 Java 类型来自 GraphQL 模式。可以生成以下条件:spring-doc.cadn.net.cn

  1. 请求的客户端类型(如查询、变异)、输入类型和响应选择类型。spring-doc.cadn.net.cn

  2. 对应于 GraphQL 模式类型的数据类型。spring-doc.cadn.net.cn

代码生成可能不适合你自己应用的数据类型,尤其是如果你 想给它们加点逻辑。不过,代码生成很适合客户端类型,因为 这些逻辑定义了请求,不需要其他逻辑。作为客户,你也可以 选择生成响应的数据类型。spring-doc.cadn.net.cn

客户端生成类型可以与 Spring 一起使用GraphQl客户端.首先,遵循以下内容 用于生成客户端API类型的DGS代码生成插件的指令。则,给定 类似这样的模式:spring-doc.cadn.net.cn

type Query {
    books: [Book]
}

type Book {
    id: ID
    name: String
}

DGS 代码生成器生成书籍GraphQL图书书籍投影根你可以用GraphQl客户端通过HTTP(或任何支持的传输方式)如下:spring-doc.cadn.net.cn

HttpGraphQlClient client =
        HttpGraphQlClient.create(WebClient.create("http://localhost:8080/graphql"));

BooksGraphQLQuery query = new BooksGraphQLQuery();
String document = new GraphQLQueryRequest(query, new BooksProjectionRoot<>().id().name()).serialize();

List<Book> books = client.document(document)
        .retrieve(query.getOperationName())
        .toEntityList(Book.class)  // possibly also generated or imported if available
        .block();
我们打算在 spring-graphql#846 中进一步简化上述代码。

你可以用 Spring Initializer at start.spring.io 创建一个 Spring 项目 DGS 代码生成 Gradle 或 Maven 插件。spring-doc.cadn.net.cn