此版本仍在开发中,尚未被视为稳定版。如需最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

API 版本

要启用 API 版本控制,请使用 ApiVersionConfigurerWebMvcConfigurer 回调:spring-doc.cadn.net.cn

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

	@Override
	public void configureApiVersioning(ApiVersionConfigurer configurer) {
		configurer.useRequestHeader("API-Version");
	}
}
@Configuration
class WebConfiguration : WebMvcConfigurer {

	override fun configureApiVersioning(configurer: ApiVersionConfigurer) {
		configurer.useRequestHeader("API-Version")
	}
}

你可以通过下面列出的内置选项之一来解析版本, 或者也可以使用自定义的 ApiVersionResolverspring-doc.cadn.net.cn

要从路径段中解析版本信息,您需要指定包含版本的路径段索引。该路径段必须声明为 URI 变量,例如 "/{version}"、"/api/{version}" 等,其中变量的实际名称并不重要。 由于版本通常位于路径的开头,建议通过路径匹配选项,将其作为所有处理器的通用路径前缀进行外部配置。spring-doc.cadn.net.cn

默认情况下,版本会使用 SemanticVersionParser 进行解析,但你也可以配置一个自定义的 ApiVersionParserspring-doc.cadn.net.cn

为方便起见,支持的版本会根据请求映射中声明的版本自动透明地检测出来,但你可以通过 MVC 配置中的一个标志将其关闭, 此时仅将配置中显式指定的版本视为受支持的版本。 对于包含不受支持版本的请求,系统将抛出 InvalidApiVersionException 异常,并返回 400 响应。spring-doc.cadn.net.cn

你可以设置一个 ApiVersionDeprecationHandler,用于向客户端发送有关已弃用版本的信息。内置的标准处理器可以根据 RFC 9745RFC 8594 设置 "Deprecation"(弃用)、"Sunset"(停用时间)和 "Link"(链接)响应头。spring-doc.cadn.net.cn

一旦配置了 API 版本控制,您就可以根据请求的版本将请求映射到控制器方法spring-doc.cadn.net.cn