1. 引入jar依赖
<dependency>
<groupId>com.slowlybirld</groupId>
<artifactId>api-version</artifactId>
<version>1.0.0</version>
</dependency>2. 在项目中加上如下配置
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
@Bean
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
VersionConfig versionConfig = new VersionConfig();
// 匹配规则初始化,可以调整顺序设置优先级
List<RuleMatcher> ruleMatcherList = new ArrayList<>(3);
ruleMatcherList.add(new HeaderRuleMatcher(versionConfig));
ruleMatcherList.add(new ParamRuleMather(versionConfig));
ruleMatcherList.add(new PathRuleMather(versionConfig));
// 初始化HandlerMapping
RequestMappingHandlerMapping handlerMapping =
new ApiVersionRequestMappingHandlerMapping(versionConfig, ruleMatcherList);
handlerMapping.setOrder(0);
handlerMapping.setInterceptors(getInterceptors());
return handlerMapping;
}
}3. 测试
3.1 加入注解之前的请求
请求结果
3.2 加入注解后的请求
请求结果:
3.3 版本参数设置
如果没有加上版本的请求参数,则接口无法调用。
为什么参数名为 “v”?
jar包中定义的:
@ApiVersion注解也是jar包中定义好的:
上述是 POST 请求的参数设置,GET请求示例:
/test/test?v=1.0.0
Rest请求示例:
/test/test/1.0.0
4. 说明
如果接口上没有加 @ApiVersion 注解,则请求的时候不需要版本参数;
如果指定版本号(例如1.0.3)的接口没有匹配到,则自动寻找最新版本(1.0.0)的接口,都没有则 404。
5. jar包下载
版权声明:本文为zhou520yue520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。