您的位置:首页 > 移动开发

app接口设计不同版本管理

2017-12-29 00:00 218 查看
摘要: app接口设计不同版本管理

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路由需要多套生产环境。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构