此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

API 版本控制

Spring MVC 支持 API 版本控制。本节概述了支持和底层策略。spring-doc.cadn.net.cn

另请参阅以下相关内容:spring-doc.cadn.net.cn

客户端对 API 版本控制的支持也可在RestClient,WebClientHTTP 服务客户端,以及用于在 MockMvc 中进行测试,并且WebTestClient.spring-doc.cadn.net.cn

ApiVersion策略

这是 API 版本控制的核心策略,包含所有配置的首选项与版本控制相关。它执行以下作:spring-doc.cadn.net.cn

ApiVersionStrategy有助于将请求映射到@RequestMapping控制器方法,并由 MVC 配置初始化。通常,应用程序不会交互直接与它。spring-doc.cadn.net.cn

ApiVersion解析器

此策略从请求中解析 API 版本。MVC 配置提供了内置的选项,可从标头、查询参数、媒体类型参数、或从 URL 路径解析。您还可以使用自定义ApiVersionResolver.spring-doc.cadn.net.cn

路径解析器始终解析指定路径段中的版本,或 提高InvalidApiVersionException否则,因此它不能屈服于其他 解析 器。

ApiVersion解析器

此策略有助于将原始版本值解析为Comparable<?>,这有助于比较、排序和选择版本。默认情况下,内置的SemanticApiVersionParser将版本解析为major,minorpatch整数值。次要值和补丁值如果不存在,则值设置为 0。spring-doc.cadn.net.cn

验证

如果不支持请求版本,InvalidApiVersionException引发,导致在 400 响应中。默认情况下,受支持的版本列表是从声明的versions 初始化的,但您可以通过MVC 配置中的标志将其关闭,并仅使用配置中显式配置的版本。spring-doc.cadn.net.cn

默认情况下,启用 API 版本控制时需要版本,并且MissingApiVersionException如果不存在,则会引发 400 响应。您可以将其设为可选,在这种情况下,将使用最新版本。您还可以指定要使用的默认版本。spring-doc.cadn.net.cn

ApiVersionDeprecationHandler

可以将此策略配置为将有关已弃用版本的提示和信息发送到 客户端通过响应标头。内置的StandardApiVersionDeprecationHandler可以设置 RFC 9745RFC 8594 中定义的“弃用”、“日落”标头和“链接”标头。您还可以配置自定义 处理程序。spring-doc.cadn.net.cn

请求映射

ApiVersionStrategy支持将请求映射到带注释的控制器方法。 有关更多详细信息,请参阅 API 版本spring-doc.cadn.net.cn