[英]Rest API Design in case of partial failure
所以我有一個票務預訂系統。
我在API上有機票預訂請求,在我的應用程序中我們稱之為付款服務。
如果第一次嘗試失敗,我們將在隊列中添加消息以供稍后處理。 並繼續向客戶發行票證。
從隊列開始,我們將在10分鍾內重試10次使用付款API的付款,如果沒有成功,我們會在該票務預訂記錄中添加一些狀態,並且通過離線方式從客戶那里取錢。
問題 :由於欺詐,我們收到了很多這樣的預訂。
解決方案 :
我有一個解決方案,在付款失敗時我不會繼續發行票證,而是要向客戶端返回一些不同的HTTP代碼。 就像其他一切一樣,除了付款就是成功。
在處理隊列中的消息(如果嘗試10次后失敗)時,我想通知客戶端此事務失敗。
如果通過,請讓客戶知道繼續發行票證
問題 :此解決方案是否具有技術可行性?
如果付款失敗,我將不會繼續發行票證,相反,我想向客戶端返回其他HTTP代碼。 就像其他一切一樣,除了付款就是成功。
如果付款已添加到隊列中,我將返回202。
202 Accepted:請求已被接受進行處理,但處理尚未完成。 該請求最終可能會執行,也可能不會最終執行,因為在實際進行處理時可能會不允許該請求。 沒有從這種異步操作中重新發送狀態代碼的功能。
否則,如果成功,則為200或201。
在處理隊列中的消息(如果嘗試10次后失敗)時,我想通知客戶端此事務失敗。
常見的通知機制是通過HTTP在某些客戶端指定的端點上傳遞消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.