簡體   English   中英

在部分失敗的情況下進行REST API設計

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM