restful api设计中的幂等性的理解。

以前就听说过这个词,但是最近看了一些文章,产生了一些疑惑,

 

GET是幂等性。
例如查一条数据,如果你给定一个id.那么你查多少次。都是这条数据,但是我疑问,这里的幂等性指的是,每次都返回一条。这个数量,还是说每次都返回同样一条数据(数据内容)



DELETE是幂等性
你第一次删除数据,是删除掉。这个副作用是删除了给定id的数据,服务端数据状态发生了改变。但是你二次再删除,数据是没有的,你没删除掉。这里的幂等性如何理解,状态的改变是相对于谁的改变


看了这篇文章 http://www.oschina.net/translate/put-or-post?p=1#comments


文章中幂等性,翻译成状态统一性,目前觉得最好的翻译


如果按照这个理解,那么get的幂等性应该理解成数据状态之间的统一,


  例如:一个对象例如有 name,age属性,这些属性之间根据业务规定,他们的状态要统一:

    1操作统一: 简单理解可以是要修改同时两个属性被修改,而且同时被一个请求修改
    2 业务状态统一:根据业务上要求,就是例如name是李四的,年龄不能超过20岁,这两个状态要一致



delete的幂等性,如果按照这个理解,那么如果你第一次删除,那么数据的状态在服务器没有了。第二次再次删除,服务器上的数据还是没有的,这个数据的状态相对于服务器是不存在的,数据是一个对象,那么对象的每一个属性之间都是不存在。状态就是没有。所以是状态统一
原文地址:https://www.cnblogs.com/or2-/p/5245768.html