【问题标题】:Right way to handle DELETE request on RESTful API在 RESTful API 上处理 DELETE 请求的正确方法
【发布时间】:2018-06-05 17:29:13
【问题描述】:

我目前正在开发一个 REST 服务,它对每个资源都有多种请求方法。

一个要求是资源不会在第一次实例中被永久删除,而是将 is_deleted 标志设置为 true 以便以后在必要时恢复它们。

我目前正在使用 DELETE 请求设置标志,但我不确定这是否是正确的方法。我想我可以在标志设置为 true 时使用 PATCH 来做到这一点。

我正在尝试遵循正确的 REST 模式来尽可能地记录它。哪个是“正确的方法?

【问题讨论】:

  • 由于 REST 通常建立在 HTTP 之上,RFC 7231 定义了 DELETE 的语义,并声明 delete 将删除与资源的关联(=链接),但不一定是资源的实际内容那个资源。它可能会导致进一步的清理,但这是一些客户通常不感兴趣的实现细节。

标签: rest api httprequest


【解决方案1】:

在 API/系统中“存档”信息而不是完全删除它是一种非常常见的模式。

重要的不是实现的细节,而是给定动词的意图已经实现。

只要在DELETE 之后对实体/文档URL 的GET 请求返回404 或类似的,就可以了。

【讨论】:

  • 重要的是语义是标准的。实施细节不受限制。
  • 同意上面的观点,删除资源的表示方式是特定于实现的。只要您的 GET 为已删除的资源返回 404,您就很好。使用 PATCH 不是一个正确的选择,因为您还允许使用 PATCH 更新其他字段以及删除标志,这是没有意义的。
猜你喜欢
  • 1970-01-01
  • 2019-04-05
  • 2012-12-28
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
相关资源
最近更新 更多