app接口设计不同版本管理
2017-12-29 00:00
218 查看
摘要: app接口设计不同版本管理
接口传递的参数:app版本号。
比如, V3--->V4->>>V5--->V6。 V3可以选择性的升级到V4,V4必须升级到V5,V5可以选择性的升级到V6。
如果服务器的接口只提供最新版本的版本号和是否强制升级标识(由运营设置),然后由客户端来比较是否要升级。 如果最新版本是V5, 那么是没有什么问题的。
但是如果最新版本已经到V6,而某个客户还停留在V3或者V4。那么如果不强制升级的话,可能就有很大的问题。
数据的变化,比如增加了旧版本不支持的数据类型
参数的变化,比如新增了参数
接口的废弃,不再使用该接口了
小版本更新(对接口的小范围修改及新增叫做小版本更新):小版本更新时,需要在每个修改的接口中进行版本号判断,从而进行不同的分发。
每个接口有各自的版本,一般为接口添加个version的参数。比如将version加到header中。
整个接口系统有统一的版本,一般在URL中添加版本号,比如http://api.gateway/v1。
推荐使用第一种,第二种通过nginx路由需要多套生产环境。
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路由需要多套生产环境。
相关文章推荐
- app接口设计之不同版本统一管理
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
- 项目管理大法归档 - 思维导图、原型工具、接口测试、设计模式、版本管理、单元测试、持续集成、代码审查、Bug 跟踪
- APP的接口版本管理 实现多版本共存
- App版本升级接口设计注意事项
- Java版本APP接口安全设计
- HDFS对象存储的版本管理设计
- IOS APP 多国语言版本设计示范
- 不同版本(2.3,2.4,2.5) web.xml 的web-app头信息
- 基于MC39I的电能管理终端远程GPRS接口设计
- nvm 管理不同版本的 node 与 npm
- 从零开发一款APP 三、Java Web后端登陆接口的设计
- 【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程
- 获取APP最新版本的接口案例
- 数据接口设计中遗漏的版本差异
- app接口设计之token的php实现
- app接口设计之signature签名的php实现
- APP接口安全token设计
- App的登陆注册接口安全设计
- Log4net不同版本在app.config和web.config的配置区别