API接口版本控制

陌路散爱 提交于 2019-11-27 15:10:35

1    设计原因    

APP接口的开发不同于PC WEB的开发,APP会经常的版本迭代,不同版本的APP接口可以同时使用,老版本的APP和新版APP可以同时使用,为了便于维护和管理,就有必要设计好APP接口的管理策略。

2    数据库及接口设计
    数据库包含字段:app版本号、更新内容、是否强制更新。

    接口传递的参数:app版本号。

3    升级状况
3.1    升级接口
    AppStore不支持强制升级,后台必须提供升级接口。

3.2    渠道
    App可能分多个渠道进行推广,比如AppStore, 越狱版本等等。 那种渠道的版本升级很可能不同。

3.3    强制升级    
    版本升级中,一些版本需要强制升级到高版本。            

    比如, V3--->V4->>>V5--->V6。 V3可以选择性的升级到V4,V4必须升级到V5,V5可以选择性的升级到V6。

    如果服务器的接口只提供最新版本的版本号和是否强制升级标识(由运营设置),然后由客户端来比较是否要升级。 如果最新版本是V5, 那么是没有什么问题的。

    但是如果最新版本已经到V6,而某个客户还停留在V3或者V4。那么如果不强制升级的话,可能就有很大的问题。

3.4    接口升级变化
3.4.1    接口变化
    接口不可能一成不变,在不停迭代中,总会发生变化。接口的变化一般会有几种:

数据的变化,比如增加了旧版本不支持的数据类型
参数的变化,比如新增了参数
接口的废弃,不再使用该接口了
3.4.2    大小版本更新
大版本更新(之前接口需要大量修改时叫做大版本更新,之前接口实在用不了了才会进行大版本更新):大版本更新时,需要把接口所在文档重新创建(相当于重新创建一个新的APP应用),使得其不同大版本之间接口相互独立,更易维护。
小版本更新(对接口的小范围修改及新增叫做小版本更新):小版本更新时,需要在每个修改的接口中进行版本号判断,从而进行不同的分发。
4    实现方案
    为了解决升级遇到的问题。一般的实现方案分为两种。

每个接口有各自的版本,一般为接口添加个version的参数。比如将version加到header中。
整个接口系统有统一的版本,一般在URL中添加版本号,比如http://api.gateway/v1。
        推荐使用第一种,第二种通过nginx路由需要多套生产环境。
————————————————
版权声明:本文为CSDN博主「xixingzhe2」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xixingzhe2/article/details/82826160

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!