【问题标题】:Moderate content using HTTP DELETE使用 HTTP DELETE 审核内容
【发布时间】:2015-11-12 18:36:58
【问题描述】:

对于使用主要是 RESTful HTTP API 来调节多种类型内容的平台,我想知道让客户端在他们用来创建内容的同一端点上调用 DELETE 是否有意义。

API 会将客户端识别为内容的创建者、平台管理员或普通用户。

在前两个的情况下,内容将立即删除,但在普通用户的情况下,内容将被标记为审查,基本上只为该用户删除。

这与为每种类型的内容发布到 /flag 和 /remove 端点相反,因为这需要额外的路由和其他开销。

更新:这里真正的问题是: 以所描述的方式使用 HTTP DELETE 来调节内容是否有意义?这会导致未来的并发症吗?

【问题讨论】:

  • 添加实际问题会更容易理解您的问题。你到底有什么问题?
  • @PedroWerneck。谢谢,我想我应该让它更明显,问题就在第一句话中:“我想知道让客户在他们用来创建内容的同一端点上调用 DELETE 是否有意义。”重新措辞:使用 HTTP DELETE 以所描述的方式调节内容是否有意义?这会导致未来的并发症吗?
  • 那就去做吧。您可以编辑您的问题。
  • @PedroWerneck 这正是我所做的 :)

标签: api rest http httprequest httpclient


【解决方案1】:

我假设客户通过向他们选择的端点发送 PUT 请求来创建内容。

从客户的角度来看,我认为这种方法没有任何明显的问题。事实上,这正是 DELETE 打算在远程创作应用程序中使用的方式,但有一些小问题取决于您希望客户端拥有多少信息。

您希望普通用户知道他的资源已被标记为删除,还是希望它完全透明?如果是第一个,DELETE 请求应该返回202 Accepted 和一些状态描述,并且进一步的 GET 请求可能会以某种方式通知客户端待删除的内容。如果您不关心这一点,您可以简单地返回404 Not Found410 Gone,但是您可能不得不处理客户端为同一端点创建新内容而删除仍在等待中的可能性。这可能是一个问题,也可能不是,这取决于您对 PUT 语义的实现。

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2019-02-18
  • 2014-06-25
  • 2018-11-29
  • 2020-07-15
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2014-08-09
相关资源
最近更新 更多