0

假设我有一个更新记录的 REST 方法。这显然是一个 POST,因为它正在更新资源。然而,在同一个动议中,需要在审计或修订历史表中创建新记录。

这里是否有使用 POST 或 PUT 的标准或最佳实践?

REST 方法是来自用户端发生的事情,还是来自数据库中发生的事情?

一种可能性是只调用一种方法,该方法更新一个表中的记录并在另一个表中创建新记录。

另一种可能性是强制 POST 只更新一个表,并且需要一种额外的方法来在审计表中执行 PUT。这迫使使用 2 种方法并将责任推给开发人员,我不太热衷于此。

4

1 回答 1

2

PUT实际上建议用于替换(更新)现有记录。

PUT 方法请求将封闭的实体存储在提供的 Request-URI 下。如果 Request-URI 引用了一个已经存在的资源,封闭的实体应该被认为是在源服务器上的一个修改版本。

还有一些关于和之间区别的POST信息PUT

POST 和 PUT 请求的根本区别体现在 Request-URI 的不同含义上。POST 请求中的 URI 标识将处理封闭实体的资源。该资源可能是一个数据接受进程,一个通往其他协议的网关,或者一个接受注释的单独实体。相比之下,PUT 请求中的 URI 标识了请求中包含的实体——用户代理知道 URI 的意图,服务器不得尝试将请求应用于其他资源。

这里

对我来说,听起来您应该使用PUT请求来更新资源。审计是这样做的副作用,因此它应该作为PUT新资源的一部分来处理。

于 2012-03-02T02:00:19.500 回答