restful之冪等性


 

 

概念解釋

       冪等性

              http冪等方法,是指無論調用多少次都不會產生不同副作用(數據變更)的http方法

              簡單解釋:

                     重復發送同一個請求多次,結果同發送一次

       操作示例:

              GET /tickets # 獲取ticket列表

              GET /tickets/12 # 查看某個具體的ticket

              POST /tickets # 新建一個ticket

              PUT /tickets/12 # 更新ticket 12

              PATCH /tickets/12 # 更新ticket 12

              DELETE /tickets/12 # 刪除ticekt 12

       HTTP GET(冪等)

              get用於獲取資源,不管調用多少次接口,返回結果保持不變,不會改變資源。如:

              第一次調用 GET /tickets , 后台返回tickets列表(我想看下還有多少張票)

              第二次調用 GET /tickets , 返回同樣的數據(我想再看一遍tickets信息)

              ps: 我多看一眼,總不會把你的票看沒了吧,我看或者不看你就在那里

 

       HTTP POST(非冪等)

              post用於創建資源,每次調用都會創建一個新的資源,如

              第一次調用 POST /tickets ,后台產生 /tickets/1 這么一個資源(我要新增一張票)

              第二次調用 POST /tickets , 后台產生 /tickets/2 這么一個資源(我要再新增一張票)

              ps:我是生產車票的,所以我不會產生重復的車票(id至少不一樣)

       HTTP PUT(冪等)

              put用於更新資源,沒有的話則執行創建操作。如:

              第一次調用 PUT /tickets/11 , 后台創建 /tickets/11 (幫我看下11號票在不在,在的話更新下狀態,不在的話創建下)

              第二次調用 PUT /tickets/11 , 后台更新 /tickets/11 (幫我看下11號票在不在,在的話更新下狀態,不在的話創建下)

              由於兩次請求攜帶的數據是一樣的,所以不論請求多少次,最終的結果都是后台存在這么一個資源(創建或更新)

              ps:我有強迫症加健忘症,同樣的事我可能會讓你干很多遍,你給我小心處理哈,我可不想看到不同的結果

       HTTP DELETE(冪等)

              delete用於刪除資源,會將資源從后台刪除。如:

              第一次調用 DELETE /tickets/11 , 后台刪除 /tickets/11對應的數據信息 (11號票我不要了,幫我刪除下吧)

              第二次調用 DELETE /tickets/11 , 后台判斷 /tickets/11不存在,無操作(11號票我不記得有沒有刪除,幫我刪除下吧)

              ps:我也有健忘症啊,同樣的事我也可能會干很多遍,你忽略就好了,給我個眼神(返回碼),我就知道了

       備注:

              /tickets/12 這種叫做uri,一個uri代表一個資源,本例中代表一張票(實際可能對應數據庫中的一行信息),

              所以上述描述的創建,刪除,更新資源,都是指根據uri及其所附帶信息實際操作uri對應的后台資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM