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:
-
请求头(Request header)
-
请求参数(Request parameter)
-
路径段(Path segment)
-
媒体类型参数(Media type parameter)
要从路径段中解析出版本号,你需要指定预期包含版本号的路径段的索引。该路径段必须被声明为一个URI变量,例如“/{version}”、“/api/{version}”等,其中具体的名称并不重要。由于版本号通常位于路径的开头,可以考虑通过路径匹配选项将其外部配置为所有处理器的通用路径前缀。
默认情况下,版本是使用SemanticVersionParser进行解析的,但您也可以配置一个自定义的ApiVersionParser。
为方便起见,支持的版本会从请求映射中声明的版本中自动检测出来,但您可以通过MVC配置中的一个标志来关闭这一功能,从而只将配置中明确指定的版本视为支持版本。对于不支持的版本请求,系统会抛出InvalidApiVersionException异常,并返回400响应码。
一旦配置了API版本控制,您就可以根据请求版本开始将请求映射到控制器方法了。