幂等 PUT 请求异常?
Exception in idempotent PUT request?
我在 Put 中实现幂等操作时遇到问题。
有 Put
请求更新剩余 API 资源中的字段。
但是要实现幂等性,每个重复的请求都应该导致对象的相同状态。
我们使用 database
如果发生错误会怎样。现在这是否意味着 Idempotency
丢失了?如果不是
现在按照相同的定义进行 - 如果我们在字段 API 中有条件状态更改。例如)状态字段。
如果逻辑是仅在父 属性 字段 locked==false
时更新状态字段,我们可以抛出一个异常 'BusinessLogic exception cannot update status'
所以理论上我们有两个操作我们有类似的情况:
- 如果不是现实生活中的错误,一个人可能是幂等的
避免
- 一个人不应该是幂等的,但我们可以使它相似
问题:
如何为 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 来描述请求打算更改的“之前”状态。
我在 Put 中实现幂等操作时遇到问题。
有 Put
请求更新剩余 API 资源中的字段。
但是要实现幂等性,每个重复的请求都应该导致对象的相同状态。
我们使用 database
如果发生错误会怎样。现在这是否意味着 Idempotency
丢失了?如果不是
现在按照相同的定义进行 - 如果我们在字段 API 中有条件状态更改。例如)状态字段。
如果逻辑是仅在父 属性 字段 locked==false
时更新状态字段,我们可以抛出一个异常 'BusinessLogic exception cannot update status'
所以理论上我们有两个操作我们有类似的情况:
- 如果不是现实生活中的错误,一个人可能是幂等的 避免
- 一个人不应该是幂等的,但我们可以使它相似
问题:
如何为 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 来描述请求打算更改的“之前”状态。