【问题标题】:Is duduping same as idempotency重复与幂等性相同
【发布时间】:2021-02-25 05:58:09
【问题描述】:

所以基于这个Defining Idempotence,我很清楚幂等性意味着什么

但我也听到很多人将这种行为描述为重复数据删除。这是一个等价的术语吗?

例如,如果一个 API 是幂等的,同一个请求被处理 N 次将获得与一次相同的状态。我可以说 API 正在对请求进行重复数据删除吗?

【问题讨论】:

    标签: api rest web terminology


    【解决方案1】:

    这两个术语并不等价,尽管对于不熟悉幂等性的人来说,最初基于它与重复数据删除的相似性来考虑它可能会有所帮助。

    作为一个对比示例,考虑一个银行账户的 API,它接受一个正数或负数来调整账户余额(存款或取款)。显然,这个 API 不是幂等的,因为连续的事务具有累积效应。

    另一方面,我们当然希望对这些事务进行重复数据删除。如果交易 #123 被(错误地)提交了两次,它应该只适用于账户余额一次。在这种情况下,应该对事务进行重复数据删除因为API 不是幂等的。

    重复数据删除是一项活动:要执行的操作。幂等性是一个属性:一个要描述的属性。当去重的结果与幂等性的效果相同时,两者存在相似性;也就是说,状态没有变化。但是等价的结果并不意味着这两个词是等价的。

    【讨论】:

    • 谢谢!我真的很喜欢最后一部分“重复数据删除是一项活动:要执行的操作。幂等性是一个属性:要描述的属性。”现在我想知道,我可以说重复数据删除是一种实现幂等性的方法吗?在您的示例中,我们可以在 API 中添加“requestID”字段,并让 API 成为幂等性,这样使用相同 requestID 提交两次的 transaction#123 不会改变最终状态。
    • 不,虽然重复数据删除可以是一种防止状态更改的方法,但它也可以是一种导致状态更改的方法(例如,对列表进行重复数据删除)。后者与幂等性无关。幂等性并不能阻止任何事情。它描述了一种效果。阻止一个方法执行不等于执行两次效果相同。
    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多