我在base/api/v1/end-point1
,base/api/v1/end-point2
,base/api/v1/end-point3
等处公开了一组api。这些基本上是v1
api。
现在,我们继续公开v2
API。在这个新的api版本中,我们将添加一些新的api,重构一些现有的(v1)api,并且某些api将保持不变。
所以我的问题是我也应该在v2中公开所有v1不变的api吗?
示例:
API V1:
api / v1 / users-保持不变
api / v1 / feature1-将会更改
其他端点...
API V2:
api / v2 / feature1-重构功能
api / v2 / feature2-新添加
api / v2 / users-我也应该公开吗?
我认为:
我不应该:因为它是相同的
我应该:因为如果不公开,客户端将需要对不同的资源使用不同的api版本(端点)。
你在做什么?您怎么看?任何参考和最佳实践资源将不胜感激。
让我知道这个问题是否不适合该平台。我很乐意在适当的地方问这个问题。
答案 0 :(得分:2)
是的
每个版本应独立于其他版本。这样做的理由是,一旦将某个版本的API公开发布,它的行为将一直相同,直到被弃用为止。这样可以确保提供的API稳定且不会因其他响应而中断。从使用该API的最终开发人员的角度来看,它也是干净的,不会混淆记住多个版本。
我们通常有SEMVER文档中提到的多个版本
给出版本号MAJOR.MINOR.PATCH,增加:
更改不兼容的API时的主要版本
以向后兼容的方式添加功能时的
版本,并且 进行向后兼容的错误修复时的PATCH版本。