内容提要
Spring for GraphQL 1.3 RC1已发布,基于GraphQL Java 22构建。该版本包括新功能、性能改进和对Defer和Stream指令的支持。增强了模式检查以检测不匹配和支持接口和联合。改进了映射到模式接口字段的功能,并增强了@EntityMapping的批量加载。WebSocket传输现在支持保持活动的PING消息。可以为GraphQL端点配置单独的Jackson编解码器。现在可以与Netflix DGS集成。GA版本将于5月21日发布,Spring I/O会议将有一个专门的会议讨论GraphQL Java 22和Spring for GraphQL 1.3。
延伸解读
升级前需关注的破坏性变更
Spring for GraphQL 1.3 RC1 基于 GraphQL Java 22 构建,而 GraphQL Java 22 包含破坏性变更。文章建议开发者利用 RC 阶段在自身环境中进行实验,以提前发现兼容性问题。因此,在升级到 1.3 正式版前,应仔细阅读 GraphQL Java 22 的发布说明,评估现有代码是否受影响,并做好测试与适配准备。
模式检查与接口联合类型的改进
新版本增强了模式检查功能,现在能够检测 @Argument 参数与模式字段参数之间的不匹配,并支持对接口和联合类型的检查。由于控制器方法返回类型无法提供运行时实际类型信息,此前无法完全检查这些类型。1.3 RC1 可根据命名约定透明发现对应 Java 类型,也提供了自定义选项,有助于减少运行时错误。
批量加载与 WebSocket 保活等实用增强
@EntityMapping 新增批量模式,可返回给定类型的所有实体,提升联邦场景下的加载效率。WebSocket 传输支持定期发送保活 PING 消息,服务端可通过 spring.graphql.websocket.keep-alive 属性启用,客户端通过构建器配置。此外,可为 GraphQL 端点单独配置 Jackson 编解码器,避免影响普通 HTTP 端点。
与 Netflix DGS 的集成及后续计划
Spring for GraphQL 团队与 Netflix DGS 团队持续合作,提供共同基础以支持两个框架运行。目前该集成已可供一般使用,并公布了路线图。正式版(GA)计划于 5 月 21 日发布,随后在 5 月 30-31 日的 Spring I/O 大会上有专门会议讨论 GraphQL Java 22 和 Spring for GraphQL 1.3。
Q&A
Spring for GraphQL 1.3 RC1的主要新功能是什么?
该版本包括对Defer和Stream指令的支持、增强的模式检查、改进的映射功能和批量加载等新功能。
Spring for GraphQL 1.3 RC1是基于哪个版本的GraphQL构建的?
它是基于GraphQL Java 22构建的。
WebSocket传输在Spring for GraphQL 1.3 RC1中有哪些改进?
WebSocket传输现在支持定期发送保持活动的PING消息。
如何配置GraphQL端点的Jackson编解码器?
可以为GraphQL端点配置单独的Jackson编解码器,以避免对HTTP端点的副作用。
Spring for GraphQL 1.3 RC1的GA版本何时发布?
GA版本将于5月21日发布。
Spring I/O会议将讨论哪些内容?
会议将有一个专门的会议讨论GraphQL Java 22和Spring for GraphQL 1.3。