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