gpt4 book ai didi

RESTful 软删除

转载 作者:行者123 更新时间:2023-12-01 12:26:38 27 4
gpt4 key购买 nike

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

首先介绍一下背景:

我的 webapp 管理通用实体,这些实体也在另一个系统中管理(并且,它总是创建)。因此,在我的 web 应用程序中,每个实体都将使用唯一键存储在数据库中。但是我们通过 URL 访问它们的方式是使用另一个系统的唯一键。

我想,一个简单的例子将说明这一点。获取 URL /entity/1 。这将显示另一个系统中 ID 为 1 的实体的信息,而不是我自己的系统。事实上,我系统中的 ID 将被完全隐藏。在我自己的系统中将没有用于访问 ID 为 1 的实体的 URL 方案。

好的,既然我们知道了我的 web 应用程序的结构,让我们返回删除这些实体。

将有一种方法可以在我的系统中“删除”实体,但我在它周围加上引号,因为它实际上不会从数据库中删除它们。相反,它会用一个属性来标记它们,以防止它在您转到 /entity/1 时出现。

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

所以,问题是:RESTful 方法是否对数据具有保真度(在这种情况下很明显我是 PUT ing),或者应用程序中数据的表示(在这种情况下我似乎是 DELETE ing)?

最佳答案

您应该使用 DELETE .

您打算对数据执行的操作称为“软删除”:您设置一个标记并避免出现标记的项目。这是您的 web 应用程序内部的,用户不必知道您正在软删除而不是删除或您想做的任何事情。这就是为什么你应该使用 DELETE动词。

关于RESTful 软删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com