天天看點

一天一道Java面試題----第十二天(如何實作接口幂等性)

文章目錄

  • ​​1、如何實作接口幂等性​​

1、如何實作接口幂等性

  • 唯一id。每次操作,都根據操作和内容生成唯一的id,在執行之前先判斷id是否存在,如果不存在則執行後續操作,并且儲存到資料庫或者redis等。
  • 服務端提供發送token的接口,業務調用接口前先擷取token,然後調用業務邏輯接口請求時,把token攜帶過去,伺服器判斷token是否存在redis中,存在表示第一次請求,可以繼續執行業務,執行業務完成後,最後需要把redis中的token删除
  • 建去重表。将業務中有唯一辨別的字段儲存到去重表,如果表中存在,則表示已經處理過了
  • 版本控制。增加版本号,當版本号符合時,才能更新資料
  • 控制狀态。例如訂單有狀态已支付 未支付 支付中 支付失敗,當處于未支付的時候才允許修改為支付中等