Prototype功能预览十三:一个注解完成更加规范的API版本管理-极大减少dubbo框架频繁修改接口问题
来源:互联网 发布:cart算法如何做回归 编辑:程序博客网 时间:2024/06/05 10:50
框架整体介绍:http://blog.csdn.NET/flyxxxxx/article/category/7055640
对此框架有兴趣或想参与开发的请加QQ群:255195191
在APP开发过程中,经常会出现同一功能接口,在不同迭代中有更新的问题,如下表所示:
“创建”表示后端接口在此迭代中创建,“更新”表示接口有变化
后端使用Prototype框架,要求APP端在请求所有的URL时,在HTTP请求头中加入一个API版本变量,这个变量对于每个APP的版本,所有的接口与迭代版本一致。
当发布1.0版本时,后端只提供了接口A和B
当发布1.1版本时,后端提供了接口C,1.1版本的APP访问A或B接口时,后端收到的版本号为1.1,后端发现这两个接口没有1.1版本,请求将自动转发到最近的版本1.0
当发布1.2版本时,A和C接口有更新,1.2版本的APP访问这两个接口时,后端将调用对应的1.2版本的接口,1.1版本的APP访问这两个接口时,因HTTP请求中的版本号不会发生变更,还是1.1,因此按规则,后端给A接口提供的是1.0版本的访问,给C接口提供的是1.1版本的访问(C接口不存在1.0版本)
以此类推,每个APP调用的后端接口版本总是与它发布时的API接口版本一致。
Prototype中,定义版本号只需要一个注解(当然业务类名可能不同):
@Service(desc="发送邮件",version="1.3")
public class SendMail1_3 extends Business{...}
在阿里dubbo框架的支持中,Prototype框架可自动为不同版本生成客户端代码,因此当接口发生变化时,并不需要把所有依赖的工程重新编译打包。
当然,在开发环境中,因为接口版本号没有变化,可能还需要编译打包的工作,但按照Prototype框架的最小化接口原则,接口的输入输出是通过注解定义的,没有定义的对象的属性的变更(增加或减少)不会造成接口的变量,因此同样可以减少开发过程中频繁编译打包接口的问题。
- Prototype功能预览十三:一个注解完成更加规范的API版本管理-极大减少dubbo框架频繁修改接口问题
- Prototype功能预览五:一个注解简化任意IO操作
- Prototype功能预览七:一个注解分离日志及事件的发送于处理逻辑
- Prototype功能预览十二:一个注解可在Spring MVC的Servlet3的异步处理与同步处理间切换
- Prototype功能预览十:面向未来技术的框架
- Prototype功能预览一:一个注解实现多项业务处理并行(Fork/Join)
- Prototype功能预览八:一个注解实现短信邮件内容模板
- Prototype功能预览九:接口最小化原则-更安全的接口
- Prototype功能预览二:两个注解实现数据库批处理
- Prototype功能预览六:业务数据与处理代码集中管理的工作流水线
- PHP:API 接口规范完整版本
- PHP:API 接口规范完整版本
- 通过Pojo对象 field 属性加注解实现格式校验,极大的减少代码量
- 缓存框架Ehcache,减少数据库频繁查询
- 支持多版本接口api的开源框架NHVersion
- Prototype功能预览十一:集成Swagger生成API文档及API测试界面
- 用注解实现简单的框架 避免频繁调用FindViewById
- Prototype功能预览三:没有价值的MyBatis/iBatis
- 李宏毅机器学习课程8~~~keras
- java String 值传递 还是引用传递
- jsp中使用json方式
- jQuery dateRangePicker插件使用总结
- 牛客网---2016---百度蘑菇阵
- Prototype功能预览十三:一个注解完成更加规范的API版本管理-极大减少dubbo框架频繁修改接口问题
- Spring定时任务(@Scheduled)
- Delphi在系统菜单中添加菜单项
- 利用FFmpeg玩转Android视频录制与压缩(二)
- mySql配置--被坑惨啦
- Privacy Policy for Baby Talk
- 我所理解的RxJava——上手其实很简单(三)
- 设计模式之二-工厂模式
- hdu 6040 Hints of sd0061(nth_element)