• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

spring-boot-starter-version-mapping: spring mvc 接口版本管理,路由扩展。通过注解 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

spring-boot-starter-version-mapping

开源软件地址:

https://gitee.com/lianqu1990/spring-boot-starter-version-mapping

开源软件介绍:

版本路由映射

  • @ApiVersion
  • 通过此注解,自动为requestmappinginfo合并一个以版本号开头的路径;建议:大版本在类上配置,小版本可以通过配置在方法上,此时将替换类上面的大版本配置
  • @ClientVersion
  • 通过此注解,可以通过接口header中的cv,terminal参数路由倒不同的处理方法(handler method,基于RequestMappingHandlerMapping中的getCustom**Condition方法扩展);
  • @VersionMapping
  • 组合注解,实现了RequestMapping的功能,同时提供了上述两种注解的配置

业务场景:

  • ApiVersion:替换之前的版本定义在路径中,导致的接口升级需要重新定义类或者在代码中做判断的问题
  • ClientVersion:碰到客户端已经在使用的接口,区分对待的情况下,通过通过ClientVersion优雅的避免在代码中写大量版本判断逻辑的问题
@RequestMapping("/t")@RestController@ApiVersion("4")public class TController {    //请求路径为/4/t/get    @RequestMapping(value="/get")    public String get1 (){        return "旧接口";    }    //请求路径为/4.1/t/get    @RequestMapping(value= "/get",params = "data=tree")    @ApiVersion("4.1")    //method的apiversion会优先于class上的,方便升级小版本    public String get2(){        return "新数据";    }    //以下三个请求路径都是/c,    //通过header里的客户端类型(如果是从url参数取,修改TerminalVersionExpression即可)以及版本号路由到不同方法    @GetMapping("/c")    @ClientVersion(expression = {"1>6.0.0"})    public String cvcheck1(){return "6.0.0以上版本的1类型";}    @GetMapping("/c")    @ClientVersion({@TerminalVersion(terminals = 2,op= VersionOperator.GT,version = "6.0.0")})    public String cvcheck2(){return "6.0.0以上版本的2类型";}    @GetMapping("/c")    @ClientVersion({@TerminalVersion(terminals = 2,op= VersionOperator.LTE,version = "6.0.0")})    public String cvcheck3(){return "6.0.0以下版本的2类型";}    public String c(){        return "aaaa";    }}
@RestController@VersionMapping(value="/t",apiVersion = "4")public class TController {    @VersionMapping(value="a",terminalVersion = @TerminalVersion(terminals = 1,op = VersionOperator.EQ,version = "3.0"))    public String t(){        return "123";    }}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap