使用HTTP DELETE调节内容

时间:2015-11-12 18:36:58

标签: api rest http httprequest httpclient

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

API会将客户端标识为内容的创建者,平台主持人或普通用户。

如果是前两个,则会立即删除内容,但对于普通用户,内容将被标记为要审核,并且基本上只为该用户删除。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

您是否希望普通用户知道他的资源被标记为删除,或者您希望它完全透明?如果第一个,DELETE请求应该返回202 Accepted以及状态的一些描述,并且另一个GET请求可能以某种方式通知客户端挂起的删除。如果您不关心这一点,您只需返回404 Not Found410 Gone,但您可能必须处理客户端在删除时为同一端点创建新内容的可能性依然悬而未决。这可能是一个问题,取决于您对PUT语义的实现。