【发布时间】:2012-01-20 07:27:22
【问题描述】:
所以“幂等性”可以定义为:
一个动作,如果执行N次与只执行一次的效果相同。
知道了,很简单。
我的问题是关于这个定义的微妙之处 - 一个动作本身是否被认为是幂等的,或者您是否还必须考虑传递给该动作的数据?
让我用一个例子来澄清一下:
假设我有一个更新某些资源的 PUT 方法,我们将其命名为 f(x)
显然,f(3) 是幂等的,只要我提供 3 作为输入。同样明显的是,f(5) 将改变资源的值(即,它将不再是 3 或之前的任何值)
所以当我们谈论幂等性时,我们指的是动作/函数的泛化(即f(x)),还是指动作/函数+传递给它的数据(即@987654327 @)?
【问题讨论】:
-
不应该移到数学论坛吗? (为了清楚起见:我没有投反对票)
-
取决于我们是在讨论形式逻辑中的定义,还是 Web 编程中的定义。我怀疑投反对票的人(不是我)只是认为这个问题不合适。
-
@Roy - 我不这么认为,因为它直接适用于 RESTful Web 服务,这就是我在中编写示例的上下文
-
我认为在这里讨论是有效的,因为有明确的 CS 应用程序,在页面中间讨论:en.wikipedia.org/wiki/Idempotence
-
它可能对想要理解这个概念的人有用:pedrorijo.com/blog/fp-concepts
标签: web-services http rest httpverbs idempotent