API 设计:删除未使用的 CRUD 服务

API design: Remove unused CRUD service

我目前是一个 Web 服务的支持者,该服务有多个支持 CRUD 操作的资源。我发现对于某些资源,其中一些操作(但不是同时全部四个)未被消费者使用。

应该首选以下哪项?

  1. 删除未使用的端点,因为未使用的代码会导致维护成本和 YAGNI。
  2. 保留 API 原样,因为更重要的是拥有完整的操作集(GET、PUT、POST、DELETE),这使得处理资源变得更加愉快,如果只是为了一些手动测试。

在我看来,如果您认为未使用的方法会产生错误,请删除或注释代码。您可以在需要时查看这些内容。只保留您需要的资源。

it is more important to have the full set of operations (GET, PUT, POST, DELETE)

全套操作不是特别重要。事实上,HTTP specification 中记录了大多数资源不支持 DELETE

Relatively few resources allow the DELETE method -- its primary use is for remote authoring environments, where the user has some direction regarding its effect.


if it is only for some manual testing.

测试和运营是支持不直接增加收入的资源和运营的完全正当理由。

还有:cool URI don't change。向后兼容性是 REST 架构风格中的一个重要思想,消费者对网络的看法不应该无缘无故地中断。

在取消对操作的支持时需要注意的一件事是了解客户是否因为不需要该操作而不使用该操作,或者他们不使用该操作是因为在以下情况下他们需要它不经常出现。

很难对此给出一个笼统的答案,但我通常会删除未使用且没有计划的代码。

代码越多,错误和安全问题的表面积就越大。维护代码不是免费的。