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" 媒体类型时,我们将保留以前的行为。

此更改是通过 HTTP 响应状态,更好地理解生产中平台和工具之间的 GraphQL 交换的一个步骤。 这并不能取代对专用 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 支持。 我们现在支持 DataLoader@EntityMapping 方法提供的参数; 这是从 GraphQL Java Kickstart 迁移到我们堆栈的开发者所要求的。

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

下一步

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

获取 Spring 新闻邮件

通过 Spring 新闻邮件保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看所有