对接 app 的接口,一个 app 有新老很多个版本,安卓甚至还有很多个渠道。例如一个商城列表,新( 1.1.1 )老( 1.1.0 )版本需要下发的不一样,这个时候用 if else 控制,过不了多久又有新( 1.1.2 )的版本需要上线,此时需要三个版本下发的列表不一样,还用 if else,这样的代码,久了之后,再看的话会跟吃屎一样难受。在考虑 app 不强制更新的情况下,百度了一圈发现没有什么好办法,请问大佬们有什么好的办法处理这种情况?
对接 app 的接口,一个 app 有新老很多个版本,安卓甚至还有很多个渠道。例如一个商城列表,新( 1.1.1 )老( 1.1.0 )版本需要下发的不一样,这个时候用 if else 控制,过不了多久又有新( 1.1.2 )的版本需要上线,此时需要三个版本下发的列表不一样,还用 if else,这样的代码,久了之后,再看的话会跟吃屎一样难受。在考虑 app 不强制更新的情况下,百度了一圈发现没有什么好办法,请问大佬们有什么好的办法处理这种情况?
|
frandyAug 7, 2020
1
|
|
la2laAug 7, 2020
2
多个 if else 能解决的,嵌套不是特别深的就这样解决呗,只要代码封装的好,逻辑很清晰的
|
|
RwingAug 7, 2020
3
可以考虑多版本共存啊,就是老的不下线,通过路由来区分
|
|
lazyfighterAug 7, 2020
4
接口向后兼容
|
|
NostalgiaaaaAug 7, 2020
5
shop_list_v1
shop_list_v2 然后看流量,小于某个阈值直接返回请升级这种文案。 |
|
learningmanAug 7, 2020
6
屎嘛,偶尔吃吃不影响身体健康
|
|
9
@Nostalgiaaaa 是像你这样做的,但是免不了对 version 做 if else
|
|
11
@learningman 经常吃还是挺影响的
|
|
maskerAug 7, 2020 via Android
13
客户端请求头加个 ver ?
|
|
smilekungAug 7, 2020
14
客户端请求时携带自身版本,后端可以在网关处理路由到不同的版本服务上,或者做一个专门的版本控制服务,后端编码处理不同的版本,之前我们一个服务里能嵌 4-5 个版本控制,变动频繁的就 app 内嵌 h5 吧 还能热更
|
|
yscgAug 8, 2020
15
了解一下 GraphQL https://graphql.cn/
|
|
xuanbgAug 8, 2020
16
路径加版本号。譬如 userapi/v1.0.0/users 。要新老版本同时存在的话,再加个接口:userapi/v1.0.1/users 。新的 APP 调用 userapi/v1.0.1/users 就行了。
|