介面冪等性介紹及應用場景

2021-10-10 12:44:08 字數 767 閱讀 4638

在計算機領域,冪等性指多次操作對系統產生的影響與一次操作相同。舉個例子,假設要刪除使用者a,無論請求多少次,操作結果都是刪除使用者a,而不會刪除使用者b。

在restful風格的介面中,冪等性表現在http請求方法中:

冪等,即要獲取使用者a的資訊,多次請求系統,返回的皆是使用者a的資訊。是返回結果相同而不是返回內容相同。

非冪等,使用者註冊,多次呼叫介面,會新增多條使用者資料。

冪等,put請求與post的區別是,post請求傾向於新增資料,而put請求傾向於更新資料,如果資料不存在則會根據客戶端提供的完整資料資源建立資料。所以對於put操作來說,多次呼叫介面產生的結果是一樣的,即客戶端提交的資料都會被更新到系統中。

非冪等,patch是對put的補充。顧名思義patch即補丁,用於更新子資源的部分內容,同樣地,如果要更新的資料不存在則允許建立資料。可以發現patch和put非常相似,那為什麼put是冪等的,而patch非冪等呢?因為patch允許根據客戶端提供的某個值動態計算更新內容,例如每次呼叫某個引數+1,則多次呼叫會產生不同結果。

1. 邏輯判斷處理

支付時對訂單狀態進行判斷,如果該訂單已支付,則不應該再次進行扣款操作。

2. 請求帶ticket

非同步請求獲取ticket,此ticket是唯一並且一次性的,儲存在頁面中,每次發起支付請求都帶上ticket,後端檢查ticket,若支付成功則刪除ticket,這樣就算重複提交也不會導致重複扣款。

冪等性學習及介面的冪等性

冪等性學習 一 什麼是冪等性 在這裡需要有以下幾個問題需要注意 2 冪等性不僅僅只是一次或者多次請求的時候對資源沒有 比如根據id對資料庫的查詢操作,此操作對資料庫沒有增刪改,所以多次查詢操作對資料庫結果是沒有任何影響的 3 冪等性還包括了第一次請求資源的時候,對資源產生了 但是在以後多次同樣的請求...

介面冪等性

例如 在http協議中,get請求,會得到同樣的資料 bool get money id,amount 1引數 id 使用者的賬戶 amount 表示取多少錢 返回值 true 表示取錢成功 false 表示取錢失敗 情景一 1 一位使用者a 取100塊錢,這個請求,傳送到了伺服器 2 伺服器正常的...

介面冪等性

token機制 服務端提供傳送token的介面,在分析業務的時候,哪些業務是存在冪等問題的,就必須在執行業務前,先去獲取token,伺服器會把token儲存到人redis中 然後呼叫業務介面請求時,把token攜帶過去,一般放在請求頭 伺服器判斷token是否存在redis中,存在表示第一次請求,然...