Spring for GraphQL 1.3 M1 版本发布

发布 | Rossen Stoyanchev | 2024年2月21日 | ...

我代表 Spring for GraphQL 团队,很高兴地宣布我们的第一个 1.3 里程碑版本现已可用。此版本包含许多新功能,在本帖中进行了描述。

同步 GraphQlClient

GraphQlClient 为任何传输(包括 HTTP、WebSocket 和 RSocket)上的 GraphQL 请求提供了一种常见的流程。继 Java 21 中 Project Loom 的可用性以及 Spring Framework 6.1 中新的同步 RestClient 之后,我们现在添加了在阻塞堆栈上使用 GraphQlClient 并使用同步 API 的选项。有关如何使用基于 RestClient 的传输创建 GraphQlClient 的详细信息,请参阅 参考文档

GraphQlClient 继续成为阻塞和非阻塞传输上的通用 API,现在还提供同步与异步使用的选择。这意味着在构建时,您可以选择在阻塞或非阻塞传输上运行,并且在运行时,您可以保留同步或异步执行请求的选择。

DgsGraphQlClient

要执行 GraphQL 请求,您需要以文本形式提供 GraphQL 操作,一个字符串文字或从文档文件加载。或者,DGS Codegen 可以生成 Java 客户端 API 来定义请求。我们现在添加了一个新的 DgsGraphQlClient,它使使用 DGS 代码生成的类变得容易。

DgsGraphQlClient 是任何 GraphQlClient 的一个薄包装器。它提供了一个专门的流程来定义请求,但除此之外,它使用 GraphQlClient 来执行请求,并公开相同的 API 来处理响应。

有关详细信息,请参阅 参考文档。此外,Spring Initializr 支持创建启用 DGS 代码生成的 Spring GraphQL 项目。

SSE 支持

我们现在提供基于 GraphQL over SSE 规范的通过 SSE 使用 Spring MVC 和 WebFlux 处理 GraphQL 订阅请求的支持。有关详细信息,请参阅 参考文档

在客户端,HttpGraphQlClient 现在支持通过 SSE 进行 GraphQL 订阅。

Apollo Federation

当联合 GraphQL 服务启动时,它需要通过 federation-jvm 库初始化 GraphQLSchema 以添加对联合指令的支持,并处理对联合实体类型的请求。

我们现在提供 FederationSchemaFactory 来执行此配置步骤。工厂检测您可以用来加载联合实体类型的 @EntityMapping 控制器方法。此类方法可以使用 @Argument 注释的方法参数来访问具有类型转换的实体 ID 值。它们可以同步或异步执行。它们还可以通过解析为 GraphQLError@GraphQlExceptionHandler 方法来解决异常。

有关详细信息,请参阅 参考文档

其他

最后但并非最不重要的是,我们与 DGS 团队合作,为 Spring GraphQL 应用程序奠定了共同的基础。您可以 阅读工作的总结。因此,DGS 框架中有一个新的集成正在最终确定,并且在 Spring for GraphQL 1.2.5 版本 中进行了一些重要的更新,这些更新使集成能够为所有 Spring for GraphQL 应用程序带来好处。我们感谢 DGS 团队并期待我们继续合作!

请通过 https://repo.spring.io/milestone 试用 1.3 M1 版本,并在我们的 问题跟踪器 中向我们提供反馈!

获取 Spring 电子简报

与 Spring 电子简报保持联系

订阅

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多信息

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部