幂等性是对双方而言的。
对于客户端,幂等性的请求不管发送多少次,都会得到相同的返回结果。
对于服务端,处理多次重复的请求之后的状态,应该与只处理一次请求的状态保持一致。
所以你的例子要满足幂等性,从服务端的角度看,应该只有一个payment资源被创建。如
果每次都创建一个新的payment,那服务端是不满足幂等性要求的。
另外,幂等性所指的服务端的状态变化,并不包含服务端处理请求时所导致的一些副作用。比如服务端可能在每次处理重复请求的时候都会记录新的日志,但这并不违反幂等性。因为服务端记日志的目的通常只是为了从运维和监控角度出发,而不是从业务角度处理客户端的请求所必须要做的操作。因此可以不把新增加的日志视为服务端状态的变化。
【 在 chzhang7901 的大作中提到: 】
: 你说的挺有道理的,但是有个疑问:
: 幂等性是相对于调用端而言的还是对双方而言的呢?
: 比如:客户端POST一个payment过去,得到消息“调用成功,payment已创建”。
: ...................
--
FROM 111.199.216.*