领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我很高兴代表 Spring for GraphQL 团队宣布我们的第一个 1.3 里程碑的发布。该版本包含本文中描述的许多新功能。
GraphQlClient 为通过任何传输(包括 HTTP、WebSocket 和 RSocket)进行 GraphQL 请求提供了一个通用工作流。随着 Java 21 中 Project Loom 的可用性,以及 Spring Framework 6.1 中新的同步 RestClient 的出现,我们现在增加了在阻塞堆栈上使用 GraphQlClient 并使用同步 API 的选项。有关如何使用基于 RestClient 的传输创建 GraphQlClient 的详细信息,请参阅参考文档。
GraphQlClient 继续是阻塞和非阻塞传输上的通用 API,现在还提供同步或异步使用的选择。这意味着在构建时,您可以选择在阻塞或非阻塞传输上运行,在运行时,您可以保留同步或异步执行请求的选择。
要执行 GraphQL 请求,您需要以文本、字符串字面量或从文档文件加载的形式提供 GraphQL 操作。或者,DGS Codegen 可以生成 Java 客户端 API 来定义请求。我们现在添加了一个新的 DgsGraphQlClient,可以轻松使用 DGS 代码生成的类。
DgsGraphQlClient 是任何 GraphQlClient 的轻量级包装器。它提供了一个专门的工作流来定义请求,但其余部分使用 GraphQlClient 来执行请求,并公开相同的 API 来处理响应。
有关详细信息,请参阅参考文档。此外,Spring Initializer 支持创建启用 DGS codegen 的 Spring GraphQL 项目。
我们现在提供对基于 GraphQL over SSE 规范,使用 Spring MVC 和 WebFlux 处理通过 SSE 的 GraphQL 订阅请求的支持。有关详细信息,请参阅参考文档。
在客户端,HttpGraphQlClient 现在支持通过 SSE 的 GraphQL 订阅。
当联合 GraphQL 服务启动时,它需要通过 federation-jvm 库初始化 GraphQLSchema,以添加对联合指令的支持,并处理对联合实体类型的请求。
我们现在提供 FederationSchemaFactory 来执行此配置步骤。该工厂检测 @EntityMapping 控制器方法,您可以使用这些方法加载联合实体类型。这些方法可以使用 @Argument 注释的方法参数来访问带有类型转换的实体 ID 值。它们可以同步或异步执行。它们还可以通过 @GraphQlExceptionHandler 方法将异常解析为 GraphQLError。
有关详细信息,请参阅参考文档。
最后但同样重要的是,我们与 DGS 团队合作,为 Spring GraphQL 应用程序奠定了一个共同的基础。您可以阅读摘要了解这项工作。因此,DGS Framework 中正在完成一项新的集成,并且在 Spring for GraphQL 1.2.5 版本中进行了一些重要的更新,以实现该集成,造福所有 Spring for GraphQL 应用程序。我们感谢 DGS 团队,并期待我们继续合作!
请通过 https://repo.spring.io/milestone 试用 1.3 M1 版本,并在我们的问题跟踪器上向我们提供反馈!