幂等PUT请求中的异常?

时间:2019-05-06 10:01:27

标签: rest exception put idempotent

我在Put中实现幂等运算有问题。

Put个请求,用于更新其余API资源中的字段。

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

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

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

如果逻辑仅在父属性字段locked==false时更新状态字段,我们可以抛出一个异常,说“ BusinessLogic异常无法更新状态”

因此,从理论上讲,我们有两种操作,我们的情况类似:

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

问题:

如何实现基于错误处理的幂等性看跌期权?如果错误处理可以,这是否意味着甚至可以使业务逻辑成为幂等Put

1 个答案:

答案 0 :(得分:1)

审查idempotent的相关定义可能会有所帮助

  

我们使用数据库,如果发生错误会怎样。现在,这是否意味着幂等性消失了?

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

  

这是否意味着甚至可以将业务逻辑置于幂等性?

是的。您可以通过以下两种方法之一进行操作:设计域应用程序协议,以使请求固有地是幂等的;或使用conditional requests来描述请求要更改的“之前”状态。