API 版本
要启用 API 版本控制,请使用 WebMvcConfigurer 的 ApiVersionConfigurer 回调
-
Java
-
Kotlin
@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")
}
}
您可以通过下面列出的内置选项之一解析版本,或者使用自定义的 ApiVersionResolver
-
请求头
-
请求参数
-
路径段
-
媒体类型参数
要从路径段解析,您需要指定预期包含版本的路径段的索引。路径段必须声明为 URI 变量,例如 "/{version}"、"/api/{version}" 等,其中实际名称并不重要。由于版本通常位于路径的开头,请考虑通过 路径匹配 选项将其外部配置为所有处理程序的公共路径前缀。
默认情况下,版本使用 SemanticVersionParser 进行解析,但您也可以配置自定义的 ApiVersionParser。
为方便起见,支持的版本会从请求映射中声明的版本中透明地检测到,但您可以通过 MVC 配置中的一个标志关闭此功能,并且只考虑在配置中明确配置为支持的版本。版本不支持的请求将被 InvalidApiVersionException 拒绝,导致 400 响应。
您可以设置 ApiVersionDeprecationHandler 来向客户端发送有关已弃用版本的信息。内置的标准处理程序可以根据 RFC 9745 和 RFC 8594 设置“Deprecation”、“Sunset”和“Link”头。
配置 API 版本控制后,您可以根据请求版本开始将请求映射到控制器方法。