幂等 PUT 请求异常?

Exception in idempotent PUT request?

我在 Put 中实现幂等操作时遇到问题。

Put 请求更新剩余 API 资源中的字段。

但是要实现幂等性,每个重复的请求都应该导致对象的相同状态。

我们使用 database 如果发生错误会怎样。现在这是否意味着 Idempotency 丢失了?如果不是

现在按照相同的定义进行 - 如果我们在字段 API 中有条件状态更改。例如)状态字段。

如果逻辑是仅在父 属性 字段 locked==false 时更新状态字段,我们可以抛出一个异常 'BusinessLogic exception cannot update status'

所以理论上我们有两个操作我们有类似的情况:

  1. 如果不是现实生活中的错误,一个人可能是幂等的 避免
  2. 一个人不应该是幂等的,但我们可以使它相似

问题:

如何为 put 实现基于错误处理的幂等性?如果错误处理正常,这是否意味着业务逻辑也可以实现幂等性 Put?

复习一下idempotent

的相关定义可能会有帮助

We use a database what happens if an error occurs. Now does this mean Idempotency is lost?

幂等性并没有丢失。幂等不保证每个请求都会成功;它仅表示由于服务器收到请求的多个副本而发生的任何loss of property都是服务器的错误。

does this mean even business logics could be made idempotency Put?

是的。您可以通过以下两种方式之一来做到这一点:通过设计您的域应用程序协议,使请求本质上是幂等的;或者使用 conditional requests 来描述请求打算更改的“之前”状态。