面試官:對外提供的API如何保證冪等?
舉例說明: 銀聯(lián)提供的付款接口:需要接入商戶提交付款請求時附帶:source 來源,seq 序列號。
source+seq 在數(shù)據(jù)庫里面做唯一索引,防止多次付款(并發(fā)時,只能處理一個請求) 。重點(diǎn):對外提供接口為了支持冪等調(diào)用,接口有兩個字段必須傳,一個是來源 source,一個是來源方序列號 seq,這個兩個字段在提供方系統(tǒng)里面做聯(lián)合唯一索引,這樣當(dāng)?shù)谌秸{(diào)用時,先在本方系統(tǒng)里面查詢一下,是否已經(jīng)處理過,返回相應(yīng)處理結(jié)果;沒有處理過,進(jìn)行相應(yīng)處理,返回結(jié)果。
注意,為了冪等友好,一定要先查詢一下,是否處理過該筆業(yè)務(wù),不查詢直接插入業(yè)務(wù)系統(tǒng),會報(bào)錯,但實(shí)際已經(jīng)處理。

【5分鐘背八股】70:對外提供的API如何保證冪等?.png