Skip to content

spring boot实现接口多版本共存 灵活修改 主要用户与APP端交互

Notifications You must be signed in to change notification settings

zsr251/SpringBoot-Mybatis-ApiVersion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SpringBoot-Mybatis-ApiVersion

spring boot实现接口多版本共存 灵活修改。 另:包含了spring boot常用插件的配置

主要解决问题

  • 一般设计中无法针对单个接口进行灵活的版本管理
  • 接口更新时需要兼容之前的接口,导致接口的参数会越来越多
  • 接口更新后会有很多判断当前版本的 if else
  • 接口多个版本不能并存

原理

基于spring mvc拦截器,自建方法和参数注解,利用反射和传入的版本参数调用该接口对应版本所需要的调用的方法

仍存在的问题

  • 依赖与spring mvc
  • 没有对返回值进行json处理
  • 返回页面的请求无法使用(ps:虽然返回页面的也不建议使用版本控制)
  • 没有复用spring获取参数的方法,目前是自己的简单实现
  • 目前不支持从body中获取参数
  • 目前只支持基础路径参数,不支持路径中添加正则方式获取参数

主要类

类名                 类型     主要作用
PathVariable         参数注解   spring自带注解,用于引用在URL中的参数
ApiVersion   方法注解 注解在需要进行接口版本控制的Controller的对应方法上
ApiParam     参数注解 注解在真正处理方法的参数中,非PathVariable参数必须含有该注解
DefaultValueEnum   默认参数值  枚举
ApiVersionException 异常 工具解析中抛出的异常
ApiVersionInterceptor 接口拦截器   核心类,进行所有处理操作

了解测试路径

其他

欢迎提出意见和完善:) 将近一年没有更新了~ 准备在2017-12-31优化维护一版:)

欢迎关注我的公众号和JavaSoSo博客

JavaSoSo公众号

About

spring boot实现接口多版本共存 灵活修改 主要用户与APP端交互

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published