公司的产品是ToB的,而且客户端和服务端是分离的(这里的分离是指,有的客户还在用低版本产品,有的新客户用的是新版本),即客户端存在v1.0、v2.0,服务端也存在v1.0、v2.0。
这样就会存在如下问题:
1.高版本客户端 与 低版本服务端兼容问题
2.低版本客户端 与 高版本服务端兼容问题
而大多数公司对于软件的版本管理,可能主要面临第二个问题。这种版本兼容问题主要是在小版本改动时会出现,例如:
一个业务的原版本在服务端接口是仅一个主键参数:
GetMessage(object key)
后来服务端接口需要传两个参数
GetMessage(object key,DateTime date)
这种情况下,低版本的客户端在调用高版本服务端接口方法时就会参数不匹配了。
对于高低版本的方法兼容:
客户端在发送请求时,都带上此客户端的版本号
https://api地址/v版本号/接口路由
服务端在接收请求后,先握手检查请求的版本在此服务端中是否兼容。
即服务端有相关的版本兼容列表,里面可能存入了[v1,v2]等版本信息,解析请求的版本参数,对比筛选