有一个问题想请教一下各位大佬。我有一个 API 服务,部分元素会根据不同 version 返回不同的内容。例如:
// version 1.0.0
{
"data": {
"a": "a1",
"b": "b1",
"c": "c1",
"d": "d1"
}
}
// version 1.0.1
{
"data": {
"a": "a1-1.0.1", // a 在 1.0.1 版本更新了内容,其余元素不变
"b": "b1",
"c": "c1",
"d": "d1"
}
}
// verison 2.0.0
{
"data": {
"a": "a1-1.0.1", // a 在 2.0.0 版本未更新内容,保持最新的 1.0.1 版本的内容
"b": "b1",
"c": "c1-2.0.0", // c 在 2.0.0 版本更新了内容
"d": "d1"
}
}
// verison 2.0.6
{
"data": {
"a": "a1-2.0.6", // a 更新到了 2.0.6
"b": "b1-2.0.6",
"c": "c1-2.0.0", // c 保持 2.0.0 不变
"d": "d1"
}
}
这些元素都是从配置文件去获取的。我现在的做法是每次版本更新都要改动代码加 if else 。想请教一下有没有什么办法不改动代码,只改配置文件,根据传进来的版本号直接拿到期望的元素值?
1
yuxiu 2021-12-20 17:59:15 +08:00
加一个配置层,如 redis ,业务层订阅对应 channel 事件,根据对应版本号请求开放接口
|
3
liuzhaowei55 2021-12-20 20:18:28 +08:00 via iPhone
java 的 easyopen 框架可以,但不太推荐这个,感觉不好用
|
4
sqfphoenix 2021-12-21 09:00:51 +08:00
不同版本的服务都各自上线,网关根据前端传的版本把流量打到不同版本的服务就好了
|
5
pangtianyu OP @yuxiu
能具体展开吗…… |