对于最新的稳定版本,请使用 Spring GraphQL 1.3.3! |
代码生成
您可以使用 DGS Code Generation 等工具生成 来自 GraphQL 架构的 Java 类型。可以生成以下内容:
-
请求的客户端类型(例如查询、更改)、输入类型和响应选择类型。
-
与 GraphQL 架构类型对应的数据类型。
代码生成可能不适用于您自己的应用程序的数据类型,尤其是当您 想要为它们添加逻辑。但是,代码生成非常适合客户端类型,因为 这些 S 定义请求,不需要有其他 logic。作为客户,您还可以 选择 生成响应的数据类型。
客户端生成的类型可以与 Spring 的 .首先,按照
DGS 代码生成插件生成客户端 API 类型的说明。然后,给定
如下所示的架构:GraphQlClient
type Query {
books: [Book]
}
type Book {
id: ID
name: String
}
DGS Codegen 会生成 ,您可以通过 HTTP(或任何支持的传输方式)将其用于,如下所示:BooksGraphQLQuery
BooksProjectionRoot
GraphQlClient
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 中进一步简化上述代码。 |
您可以在 start.spring.io 中使用 Spring Initializer 创建一个 Spring 项目 DGS 代码生成 Gradle 或 Maven 插件。