代码之家  ›  专栏  ›  技术社区  ›  Umair Mohammad

新的API版本是否也支持旧版本的所有API?[设计问题]

  •  2
  • Umair Mohammad  · 技术社区  · 6 年前

    我有一组API在 base/api/v1/end-point1 , base/api/v1/end-point2 , base/api/v1/end-point3 等等。这些基本上是 v1 API。

    现在我们要继续揭露 v2 API。在这个新的API版本中,我们将添加一些新的API,重构一些现有的(v1)API,并且一些API将保持不变。

    所以我的问题是,我应该同时公开v1在v2中的所有未更改的API吗?


    例子:

    API V1:

    API/V1/用户-保持不变

    API/V1/功能1-将更改

    其他端点…

    API V2:

    API/V2/Feature1-重构功能

    API/V2/Feature2-新增

    API/V2/用户 我也应该曝光吗?


    我想:

    我不应该:因为它是一样的

    我应该这样做:因为如果它没有公开,那么客户机将需要为不同的资源使用不同的API版本(端点)。

    你在做什么?你的观点是什么?任何参考资料,任何最佳实践资源将非常感谢。

    如果这个问题不适合这个平台,请告诉我。我很乐意在适当的地方问这个问题。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Bharathwaaj    6 年前

    对。

    每个版本都应该独立于其他版本。其基本原理是,一旦一个API版本发布给公众,它的行为就会保持不变,直到它被否决。这可以确保所提供的API是稳定的,不会因不同的响应而中断。另外,从使用API的最终开发人员的角度来看,它是干净的,不会混淆记住多个版本。

    我们通常有多个版本控制,如中所述 SEMVER 文档

    给定版本号major.minor.patch,递增:

    进行不兼容的API更改时的主版本

    以向后兼容的方式添加功能时的次要版本,以及

    修复向后兼容的bug时的补丁版本。