App后端API设计版本问题

摆渡者 发布于 2015/11/30 14:39
阅读 5K+
收藏 2
在使用Java开发好一个App的后端API后,随着需求变化导致App页面内容会发生变化, 因此后端API也会随着变化为了保证老版本的App用户也能正常使用,因此原来的API也必须保留。这样就出现了一个API会有多个版本v2,v3等。随着App版本的增多,后端API版本也会越来越多,这样的API设计在后期维护时代价会越来越大,想请教一下大家是怎样解决这个问题的呢?
加载中
0
-赵本山-
-赵本山-

我们处理方式:

1.业务改动较小。根据app调用接口传入版本号,业务逻辑做区分处理。

2.业务改动较大的,启用新接口。

电商业务需求变化很多。我们一年都发了3个大的改版版本了。

业务改动很大,基本还是新开发接口的比较多。

摆渡者
摆渡者
我现在就在电商行业,看到代码的包都是按照版本分的了,里面各种版本的API,所以来此问问看有没有更好的办法。不过对于新版本的后端API,很多都是直接新写
1
摆渡者
摆渡者
大家的回答都不错,我只能采纳一个,不过还是谢谢大家了, 让我涨姿势了
摆渡者
摆渡者
回复 @开源中国首席弟子 : 额,,改不了了,,谢谢你的回答哦
开源中国首席弟子
开源中国首席弟子
我的才是最好的解决方案
0
xuqingkai
xuqingkai

我也想听听的别的大神怎么操作这个的

一般来说多版本的维护都控制在2个,最多三个,老版本要及时放弃


摆渡者
摆渡者
主要是老版本的用户量也不少,就像Android版本一样,虽然Android更新到6.0了,但还有部分机器是4以下的。若强制他们升级,将可能带来客户损失。
0
Sean!Zen
Sean!Zen

目前,我手头这个是三个版本API同时维护,分别对应不同版本的APP。API尽量兼容旧版本,实在兼容不下了,只好放弃。同时,客户端打开的时候提示当前版本APP是否已经不再被支持!

继续等大神来,一起学习。

摆渡者
摆渡者
怎么顶上去,不让帖子沉了??
0
z
zouhao23
该评论暂时无法显示,详情咨询 QQ 群:点此入群
z
zouhao23
回复 @摆渡者 : 内嵌HTML理论上客户端就是不用升级了,但是具体的实现过程中还会有很多问题,通常我们现在是内嵌HTML和手机客户端实现两种方式共存
摆渡者
摆渡者
回复 @zouhao23 : 那样的话客户端是不是就不用升级了??
z
zouhao23
回复 @摆渡者 : 5楼的做法也是跟我们当前的做法一样。 内嵌HTML其实可以理解为B/S模式,这样客户端只是一个壳子,这样展示的内容,接口想怎么变,就怎么变
摆渡者
摆渡者
前两个很容易理解,但是内嵌HTML也不是对每个页面都适用的吧?继续维护多个版本的API将会越来越累啊,比如都v6v7了什么的
0
Sel8616
Sel8616

做好兼容~~成本太高,老板们一般不会同意

现实点的做法,看2楼

简单的接口,干脆在兼容的前提下改了(无非调整下参数什么的)

复杂的,就分支维护一段时间,再更新上两三个版本后,直接取消旧版功能的支持

摆渡者
摆渡者
分支维护,很好的想法
0
开源中国首席弟子
开源中国首席弟子

我们是这样做的:1.1的app连接服务器时会转向1.1版本后台,1.2版本的app 会转向1.2的后台,数据库方面新版本尽量兼容老版本,API 不同版本的地址大概是这样的:

http://localhost:8080/app1_1/login

http://localhost:8080/app1_2/login

服务器用Nginx 代理指向不同的服务后台,

开源中国首席弟子
开源中国首席弟子
这样代码永远是最新的接口,不存在同时维护多个版本的API
0
a
astars
现在基本都是内钳HTML , 只要更新HTML就好,APP包不用升级
摆渡者
摆渡者
貌似这种做法很火的样子呢
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部