我在 base/api/v1/end-point1
、base/api/v1/end-point2
、base 公开了一组 api/api/v1/end-point3
等。这些基本上都是 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 版本(端点)。
你在做什么?你的看法是什么?任何引用任何最佳实践资源将不胜感激。
如果这个问题不适合这个平台,请告诉我。我很乐意在适当的地方提出这个问题。
最佳答案
是的。
每个版本应该独立于其他版本。理由是,一旦 API 版本向公众发布,它的行为就会保持不变,直到被弃用为止。这确保了所提供的 API 是稳定的,并且不会因不同的响应而中断。另外,从使用 API 的最终开发人员的角度来看,它很干净,并且不会因为记住多个版本而感到困惑。
我们通常有多个版本控制,如 SEMVER 中提到的文档
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
关于rest - 新的API版本是否也应该支持旧版本的所有API? [设计问题],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53333147/