REST风格的软删除(RESTful Soft Delete)

2019-08-19 21:33发布

我试图建立一个RESTful web应用程序,其中我使用GET,POST,PUT和DELETE。 但我有一个关于在这个特定的应用程序使用DELETE问题。

一点背景知识第一:

我的web应用程序管理,它们也管理通用实体(和它发生,总是创建)中的另一个系统。 所以,我的web应用程序中,每个实体都将存储在数据库中一个独特的密钥。 但是,我们将访问他们通过URL的方式与其他系统的唯一密钥。

一个简单的例子说明这一点,我想。 就拿URL /entity/1 。 这将显示信息与其它系统 ID为1的实体,而不是我自己的系统。 事实上,在我的系统ID将被完全隐藏。 将有存取具有ID的实体没有URL方案1在我自己的系统。

好了,现在我们知道我的web应用程序所采用的结构,让我们恢复到删除这些实体。

有会在我的系统中“删除”实体的方式,但我把引号,因为它实际上不会从数据库中删除它们。 相反,它会与防止它出现,当你去一个属性将它们标记/entity/1

正因为如此,我觉得我应该使用PUT (以这种方式“删除”会幂等),因为我是从数据的角度来看,简单地设置属性。

因此,问题:请问RESTful方法具有高保真的数据(在这种情况下,很显然,我PUT荷兰国际集团),或在应用程序中的数据的表示(在这种情况下,看来我DELETE荷兰国际集团)?

Answer 1:

您应该使用DELETE

你打算用你的数据被称为“软删除”做什么:你设置一个标志,避免出现标志项。 这是内部的你的web应用,并且用户不必知道你是软删除,而不是删除或任何你想做的事情。 这就是为什么你应该使用DELETE动词。



文章来源: RESTful Soft Delete
标签: rest put