关于接口有多版本情况是怎么样处理的。

当一个接口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不是出错吗?

想请教各位大神,是怎么样处理这样的问题的。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

这么大的改动。。感觉是两个项目。 路由文件解决不了 然后尝试了修改成不同目录 不同controller ;前者解决不了 又出现了公共函数(你给公共函数再新增一个 或者函数内判断下);前者解决不了 是因为 数据库字段变了。。。说了这么多 不如变成两个项目 换句话说 两个容器,只需要修改env文件连接不同数据库 不同网址就行了

5年前 评论
半人间 (楼主) 5年前

你可以不同 Model 就好了

  • App\Models\V1\User
  • App\Models\V2\User
5年前 评论
半人间 (楼主) 5年前
╰ゝSakura 5年前

既然要兼容,那就不可能删除字段的

5年前 评论
╰ゝSakura

前期先共存一段时间后,等用户都引流到V2版本后,就把V1的接口给下了,在引流完用户之后,V1的接口以及字段都是需要保留的,前期先用二套model和接口

5年前 评论
半人间 (楼主) 5年前
_jue 5年前
╰ゝSakura (作者) 5年前

不都是一个继承搞定吗?

当然咯,复制粘贴一把梭,没有什么搞不定的,,,

5年前 评论

返回不是模型直接返回啊,用 API 资源类,不同的接口用不同的资源类,在资源类里定义接口返回的字段

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!