使用 HTTP DELETE 审核内容

Moderate content using HTTP DELETE

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

API 会将客户识别为内容的创建者、平台版主或普通用户。

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

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

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

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

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

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