Spring for GraphQL 1.4 M1 已发布

版本发布 | Brian Clozel | 2025年3月18日 | ...

代表 Spring for GraphQL 团队,我很高兴地宣布我们的第一个 1.4 里程碑版本可用。

与 GraphQL over HTTP 规范保持一致

GraphQL over HTTP 草案规范 正在取得良好进展,因此我们决定在 1.4 版本中对其进行全面对齐。Spring for GraphQL 的先前版本已经支持官方的 "application/graphql-response+json",并且它已经成为我们默认的响应媒体类型一段时间了。

通常,当服务器不可用、安全凭证丢失或请求体不是有效的 JSON 时,GraphQL HTTP 客户端应期望 4xx/5xx HTTP 响应。与此新规范的剩余差距在于 GraphQL 引擎完全失败时的 HTTP 响应状态行为。最近的更改意味着,如果客户端发送的 GraphQL 文档无法解析或被 GraphQL 引擎视为无效,"application/graphql-response+json" 响应也将使用 4xx 状态。当我们保留客户请求 "application/json" 媒体类型时的先前行为。

此更改是朝着使平台和工具在生产环境中更好地理解 GraphQL 交互迈出的一步,即使用 HTTP 响应状态。这并不能取代对专用 GraphQL 指标和跟踪的需求。Spring for GraphQL 已经 拥有出色的可观测性支持,并计划很快通过 DataLoader 仪器 来扩展它。

新的传输功能

除了支持 GraphQL over HTTP 规范外,我们还将继续改进我们的传输支持。这个新的里程碑版本为基于 Servlet 的应用程序带来了性能改进,支持 Server Sent Events 上的订阅的 keep-alive,以及通过 新的 WebGraphQlInterceptor 提供全局 HTTP 超时支持。

更好的 Federation 支持

Spring for GraphQL 升级到 Apollo GraphQL Federation 5.3.0 并改进了我们的 Federation 支持。我们现在支持 @EntityMapping 方法的 DataLoader 参数;这是由从 GraphQL Java Kickstart 迁移到我们堆栈的开发者请求的。

此外,我们的模式检查功能现在可以检测并报告未被任何 @EntityMapping 方法覆盖的 federated 实体。这让您可以确信您的整个模式都由应用程序实现。

下一步

请通过 https://repo.spring.io/milestone 试用 1.4 M1 版本,并在我们的 问题跟踪器 上向我们提供反馈!现在是提出改进建议的时候了,因为我们的目标是在 5 月份与 Spring Boot 3.5.0 一起发布官方版本。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有