关于接口有多版本情况是怎么样处理的。
当一个接口v1.0返回
a,b,c,d 字段
新的v2.0版本经过修改返回
a,c,e,f 字段
那么怎么样保留二个接口的。
我看很多都是共用一份代码下不同目录
v1/UserController
v2/UserController
那么我修改model,共用的函数等, 那么会影响所有接口
比如v1.0返回
a=用户的钱0.8
v2.0返回
a=用户的钱0.85
这个计算公式我是放公共函数的,,如果我修改了,那么1.0不是也修改了?
这时候我产生了第二个想法。不同版本就是不同代码这时候我产生了第二个想法。不同版本就是不同代码
v1.xxx.com/ 指向目录 v1
v2.xxx.com/ 指向目录 v2
这样就是有历史的代码。但是我又产生下面的问题,
如果我数据库都删除了b字段, 那么v1.0不是出错吗?
这么大的改动。。感觉是两个项目。 路由文件解决不了 然后尝试了修改成不同目录 不同controller ;前者解决不了 又出现了公共函数(你给公共函数再新增一个 或者函数内判断下);前者解决不了 是因为 数据库字段变了。。。说了这么多 不如变成两个项目 换句话说 两个容器,只需要修改env文件连接不同数据库 不同网址就行了
你可以不同 Model 就好了
既然要兼容,那就不可能删除字段的
前期先共存一段时间后,等用户都引流到V2版本后,就把V1的接口给下了,在引流完用户之后,V1的接口以及字段都是需要保留的,前期先用二套model和接口
不都是一个继承搞定吗?
当然咯,复制粘贴一把梭,没有什么搞不定的,,,
返回不是模型直接返回啊,用 API 资源类,不同的接口用不同的资源类,在资源类里定义接口返回的字段