app版本控制的几种方式

本文探讨了在API迭代过程中是否需要进行版本控制的问题。总结了三种版本控制方案:灰度部署、URL中携带版本号和请求参数中包含版本信息。灰度部署允许逐步迁移用户,但需要额外的硬件支持;URL或请求参数中携带版本号则可能导致代码混乱。文章强调了在特定情况下版本控制的重要性,并分析了各种方案的优缺点。
摘要由CSDN通过智能技术生成

是否需要做版本控制?

  • 出入参保持不变,迭代对app无感知,不需要版本控制
  • 如果对比之前新增或者减少了参数,但是可以通过给默认值或者兼容零值的方式兼容老逻辑,不需要版本控制
  • 其他情况需要进行版本控制

版本控制的几个方案

灰度部署,通过nginx分发

需要服务器机器支持灰度部署,比如目前服务器有两套,一套做灰度一套新版本。在请求的时候带上app版本号,通过nginx控制分发到灰度还是新版本。

优点:可以通过监控灰度流量知道还有多少用户没有升级app,当灰度的流量降低到一定程度时可以将灰度机器也更新成新的代码。无论是前端还是后端都对代码迭代无感知。
缺点:需要硬件服务器的支持。版本迭代很快的时候不适用。

在url中使用版本编号,通过拦截器分发

比如login接口,1.0版本url可以设置为
https://xxx.xxx/lv1/login/xxx
2.0版本url设置为
https://xxx.xxx/lv2/login/xxx

在处理路由的时候分开处理。

在请求参数中使用版本号

在请求参数中新增版本号参数,比如携带在header或者请求参数中,服务端拿到版本号参数之后对版本进行判断,然后走不通的处理逻辑。比如:

if (version > "1.6.1") {
	//xxxxx
} else {
	//xxxxx
}

这个会导致代码很乱,各个版本的逻辑混杂。当更新频率很高的时候,代码中会出现很多地方进行版本判断,整体很杂乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值