【问题标题】:REST Handling of Removed Backwards-compatible Functionality移除的向后兼容功能的 REST 处理
【发布时间】:2016-01-06 16:30:23
【问题描述】:

Semantic Versioning 如何定义移除功能但客户端不一定会中断时所需的版本更改?

例如,如果我有一个接受排序参数的资源:

/person?sort=name

如果我删除了排序功能,现有的客户端仍然可以使用该服务(排序只是不会得到尊重)。 SemVer 是否认为这是向后不兼容的更改? 如果不是,什么规则专门针对这种情况?

【问题讨论】:

    标签: api rest versioning semantic-versioning


    【解决方案1】:

    从我的角度来看,现有客户会崩溃 - 他们希望结果集以排序方式返回,但事实并非如此。这意味着,即使用户单击了要求按名称对内容进行排序的按钮,某些网页或应用程序屏幕很可能会以未排序的方式显示数据。即使应用程序没有崩溃,客户的用户体验也会发生负面和意外的变化。因此,您说的是重大更改以及主要版本的增加。

    如果您可以绝对确定没有客户端使用 API 元素,那么它可能是另一回事 - 例如如果您在一个封闭的世界中工作,在那里您可以检查和验证您的所有客户端,那么您可能会选择假装 API 元素从未存在,并且只将更改视为次要更改或补丁更改。但在 99% 的情况下,它应该是版本增加,即使在封闭世界的情况下,我认为这将是一种极端的方法,只有在某些情况下才合理。

    【讨论】:

      猜你喜欢
      • 2017-10-13
      • 2011-03-28
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      相关资源
      最近更新 更多