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 Initializer 支持创建启用 DGS codegen 的 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 Framework 中正在最终确定一个新的集成,并且在Spring for GraphQL 1.2.5 版本中进行了一些重要的更新,这些更新使得集成成为可能,从而惠及所有 Spring for GraphQL 应用。我们感谢 DGS 团队,并期待继续合作!

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

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

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

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部