Spring for GraphQL 1.3 RC1 发布

发布 | Rossen Stoyanchev | 2024 年 4 月 16 日 | ...

我很高兴代表 Spring for GraphQL 团队宣布 1.3 RC1 的发布。本文介绍了该版本。有关 1.3 中其他即将发布的功能的更多信息,请参阅1.3 M1 博客文章

GraphQL Java 22

1.3 发布候选版本基于今天早些时候发布的 GraphQL Java 22。GraphQL Java 22 包含许多新功能,包括主要的性能改进、对即将添加到 GraphQL 规范的Defer 和 Stream 指令的实验性支持等等。

本次发布也包含了一些破坏性变更,现在是时候在您的环境中进行试验了。有关更多详细信息,请参阅 GraphQL Java 22 发布页面

Schema 检查

启动时的 Schema 检查报告已被证明是一个受欢迎的功能。然而,由于它依赖于控制器方法签名才能将 Schema 与 Java 类型匹配,因此它未能完全检查 Schema 接口和联合类型,因为在这种情况下,控制器方法的返回类型不能提供运行时关于实际类型的足够信息。

1.3 候选版本增加了对检查接口和联合的支持,这取决于确切的命名约定,可以透明地发现与接口实现和联合成员类型相对应的 Java 类型。如有必要,有一些选项可以自定义以帮助检查。

Schema 检查也得到了增强,可以检测并报告 @Argument 控制器方法参数与 Schema 中声明的字段参数之间的不匹配。

Schema 接口映射

如果您使用 Schema 接口,您可能需要为每个实现对象重复映射同一个字段。

1.3 候选版本增加了对 Schema 接口字段映射的支持,通过使这些重复的注册变得透明,除非它们已经存在。这适用于 @SchemaMapping@BatchMapping 方法。

使用 @EntityMapping 进行批量加载

1.3 M1 增加了联合支持,可以通过带 @EntityMapping 注解的控制器方法加载联合实体。得益于早期的反馈,我们通过批量模式增强了此功能,@EntityMapping 方法可以返回给定类型的所有实体。请参阅文档中更新的 联合部分

WebSocket Keep-Alive

如果长时间没有发送其他消息,WebSocket 传输现在支持定期发送 keep-alive PING 消息。在服务器端,这通过 Spring Boot 属性 spring.graphql.websocket.keep-alive 启用。在客户端,这通过客户端构建器启用。

GraphQL 与其他端点的 Jackson 编解码器

现在可以为 GraphQL 端点配置一个独立的 Jackson 编解码器,使其与 HTTP 和 Web 端点使用的编解码器分开。这对于根据需要渲染 GraphQL 响应(例如,带有 null 值)而不对常规 HTTP 端点造成副作用非常重要。

所有变更的列表,请参阅 v1.3.0-RC1 发布 页面。

Netflix DGS

我们继续与 DGS 团队紧密合作,致力于实现一个通用基础,以使这两个框架都能运行。DGS 团队现在已经开放了该集成的通用使用,并概述了路线图。

请参阅 公告博客文章,以及 Josh 与 Paul Bakker 和 Kavitha Srinivasan 的 Bootiful 播客 也值得一看。

结论

接下来是 5 月 21 日的 GA 版本发布。一如既往,您的反馈至关重要,我们非常感谢!请试用该版本,并告诉我们它的运行情况。

在 GA 版本发布一周后,即 5 月 30-31 日,将举行 2024 年 Spring I/O 大会,我们届时将有一个关于 GraphQL Java 22 和 Spring for GraphQL 1.3 的专题会议。我期待见到计划参加的人。门票所剩不多了!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有