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

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

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

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

你可以不同 Model 就好了

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

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

4年前 评论
╰ゝSakura

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

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

不都是一个继承搞定吗?

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

4年前 评论

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

4年前 评论

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