假设有下面一个场景: 1.0 版本客户端的用户注册功能,手机号是可选填的,即使用户不输入手机号也能注册,对应的后端接口 URL 是 v1/reg
但到了 1.1 版本,手机号改为了必填,这时候有两种做法:
1 )做一个新的 v2/reg 后端接口给客户端使用,缺点是,需要同时维护 v1 、v2 两个版本的接口,而且会造成两个接口的代码大量冗余,除了“手机号是否必填”不一样以外,其它功能的代码都一样
2 )让客户端把版本号传过来,后端接口根据客户端版本号来判断手机号是否必填,缺点是,接口里会充斥着很多对客户端版本号进行判断的代码,例如:
if (appVersion == "1.0") {
// do something
} else if (appVersion == "1.1") {
// do something
} else {
// do something
}
上面哪种做法更好呢?或者各位大神有没有更好的版本控制方案?