在RESTful API上处理删除请求的正确方法

在RESTful API上处理删除请求的正确方法,rest,api,httprequest,Rest,Api,Httprequest,我目前正在开发一个REST服务,它对每个资源都有多个请求方法 一个问题是,资源不会在第一个实例中被永久删除,而是将is_deleted标志设置为true,以便在必要时在以后恢复它们 我目前正在使用删除请求设置标志,但我不确定这是否是正确的方法。我想当标志设置为true时,我可以使用补丁来实现这一点 我试图遵循一个正确的REST模式来尽可能地记录它。哪一种是“正确的方法?”在API/系统中“归档”信息而不是完全删除信息是一种非常常见的模式 重要的不是实现的细节,而是给定动词的意图已经实现 只要GE

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

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

我目前正在使用删除请求设置标志,但我不确定这是否是正确的方法。我想当标志设置为true时,我可以使用补丁来实现这一点


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

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

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


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

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

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


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

重要的是语义是标准的。实现细节不受约束。同意上面的说法,已删除资源的表示方式是特定于imp的实现。只要GET为已删除的资源返回404,您就可以了。使用修补程序不是正确的选项,因为您还允许使用修补程序更新其他字段以及删除标志,这是没有意义的。重要的是语义是标准的。实现细节不受约束。同意ab当然,已删除资源的表示方式是特定于实现的。只要GET为已删除资源返回404,您就可以了。使用修补程序不是一个正确的选项,因为您还允许使用修补程序更新其他字段以及删除标志,这是没有意义的。因为REST通常构建在HTTP之上,定义
DELETE
的语义,并说明DELETE将删除关联(=链接)指向资源,但不一定是该资源的实际内容。这可能会导致进一步的清理,但这是一些客户端通常不感兴趣的实现细节。由于REST通常构建在HTTP之上,因此定义了
DELETE
的语义,并声明DELETE将删除关联(=链接)但不一定是该资源的实际内容。这可能会导致进一步的清理,但这是一些客户端通常不感兴趣的实现细节。