我在Put中实现幂等运算有问题。
有Put
个请求,用于更新其余API资源中的字段。
但是要实现幂等性,每个重复请求都应导致对象处于相同状态。
我们使用database
,如果发生错误会怎样。现在,这是否意味着Idempotency
丢失了?如果没有
现在按照相同的定义-如果我们在字段(例如)status字段的rest API中有条件的状态更改。
如果逻辑仅在父属性字段locked==false
时更新状态字段,我们可以抛出一个异常,说“ BusinessLogic异常无法更新状态”
因此,从理论上讲,我们有两种操作,我们的情况类似:
问题:
如何实现基于错误处理的幂等性看跌期权?如果错误处理可以,这是否意味着甚至可以使业务逻辑成为幂等Put
?
答案 0 :(得分:1)
审查idempotent的相关定义可能会有所帮助
我们使用数据库,如果发生错误会怎样。现在,这是否意味着幂等性消失了?
幂等性不会丢失。幂等并不保证每个请求都会成功。这仅表示由于服务器收到请求的多个副本而发生的任何loss of property都是服务器的故障。
这是否意味着甚至可以将业务逻辑置于幂等性?
是的。您可以通过以下两种方法之一进行操作:设计域应用程序协议,以使请求固有地是幂等的;或使用conditional requests来描述请求要更改的“之前”状态。