Spring cloud 项目,如何进行接口版本管理比较好呢?

查看 60|回复 1
作者:cnzmz   
项目基本情况:
Nacos 配置中心等
Spring Gateway 网关。
再有就是基础的系统服务 user system ,再有就是业务模块了。
其实就是 SpringBalde 开源框架那一套。
https://gitee.com/smallc/SpringBlade?_from=gitee_search
在开发过程中发现某些接口会出现升级变更的情况,期望保留接口原来的接口,保留兼容性。
目前搜索过程中确认到主流的做法有两种。
1. URL 的形式 xxx/v1/user/list 这种。
2. 传一个 Header 的形式,Accept: application/vnd.example+json;version=1.0
或者自己定义一个 Header 传过去。
目前搜索到的实现方案
都是在业务模块中 定义注解、实现一个 RequestCondition 这种形式
类似 https://pdai.tech/md/spring/springboot/springboot-x-interface-version.html
请问如果需要在多个业务模块中实现这个,怎么写这部分比较好呢。
如果在每个模块中都写一遍感觉会比较重复。
使用 Spring Gateway 网关能实现类似效果吗?这部分没有查到比较好的内容。

spring, 模块, header, gateway

Hurriance   
之前的项目用的是你说的主流做法的第一种 xxx/v1/user/list ,好处是很直观,尤其是需要根据 URL 调试的时候,缺点的话,不太优雅?看你的需求更侧重哪个吧。
针对第一种的话,个人体验就是,同一个接口的不同版本尽量紧凑在一块,方便回溯对比。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部