使用 HTTP DELETE 审核内容

问题描述 投票:0回答:1

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

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

对于前两种情况,内容将被立即删除,但对于普通用户,内容将被标记为供审查,并且基本上仅针对该用户删除。

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

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

rest http httprequest
1个回答
0
投票

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

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

您希望普通用户知道他的资源已被标记为删除,还是希望它完全透明?如果是第一个,DELETE 请求应返回

202 Accepted
和一些状态描述,并且进一步的 GET 请求可能会以某种方式通知客户端待删除。如果您不关心这一点,您可以简单地返回
404 Not Found
410 Gone
,但随后您可能必须处理客户端在删除仍待处理时为同一端点创建新内容的可能性。这可能是个问题,也可能不是问题,具体取决于您对 PUT 语义的实现。

© www.soinside.com 2019 - 2024. All rights reserved.