restful api設計中的冪等性的理解。

c3tc3tc3t發表於2016-03-05

以前就聽說過這個詞,但是最近看了一些文章,產生了一些疑惑,

 

GET是冪等性。
例如查一條資料,如果你給定一個id.那麼你查多少次。都是這條資料,但是我疑問,這裡的冪等性指的是,每次都返回一條。這個數量,還是說每次都返回同樣一條資料(資料內容)



DELETE是冪等性
你第一次刪除資料,是刪除掉。這個副作用是刪除了給定id的資料,服務端資料狀態發生了改變。但是你二次再刪除,資料是沒有的,你沒刪除掉。這裡的冪等性如何理解,狀態的改變是相對於誰的改變


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


文章中冪等性,翻譯成狀態統一性,目前覺得最好的翻譯


如果按照這個理解,那麼get的冪等性應該理解成資料狀態之間的統一,


  例如:一個物件例如有 name,age屬性,這些屬性之間根據業務規定,他們的狀態要統一:

    1操作統一: 簡單理解可以是要修改同時兩個屬性被修改,而且同時被一個請求修改
    2 業務狀態統一:根據業務上要求,就是例如name是李四的,年齡不能超過20歲,這兩個狀態要一致



delete的冪等性,如果按照這個理解,那麼如果你第一次刪除,那麼資料的狀態在伺服器沒有了。第二次再次刪除,伺服器上的資料還是沒有的,這個資料的狀態相對於伺服器是不存在的,資料是一個物件,那麼物件的每一個屬性之間都是不存在。狀態就是沒有。所以是狀態統一

相關文章