优雅的对API进行内部升级改造
- 背景
随着业务的快速发展老的系统将逐渐的无法快速支撑现有业务迭代重构一个必然的过程;然而在底层业务系统重构的过程中,对外提供的API也同时需要进行相应的升级替换;推动外部调用方替换新的API是十分艰难而漫长的过程,因此往往很多时候不得不需要在旧的API内部进行改造升级。旧API的内部改造。。。老代码接口无单测逻辑惨不忍睹!!! 如何能避免不改动老的代码优雅的完成接口的内部改造升级?
-
实现方案
- 利用自定义注解+aop不侵入旧代码进行切换
-
利用redis 对接口进行灰度控制来保证业务逻辑平滑过渡
-
- 部分代码
自定义注解部分:
Aspect部分:
老的V1版本API添加注解:
V2版本API
- 达到比较优雅目的:
a.内部升级不去改动惨不忍睹的老代码
b.方便测试人员进行两个版本的API即实现逻辑进行比对测试
c.利用灰度开关平滑的进行过渡
d.后续外部调用方进行主动替换升级版本改动小