如何寫出高可用、魯棒性強的接口呢?我們設計接口的時候需要考慮以下幾點:
1. 入參校驗:非空校驗,格式校驗(如手機號格式),業務校驗(如充值金額必須大於0);
2. 短路式寫法,非正常分支判斷前置;
3. 非查詢類接口都要考慮 重複請求、併發請求,保證接口的冪等性;
可能觸發重複請求或消費的場景:(1)網絡波動(2)分佈式消息消費(3)用戶重複操作(4)重試機制
服務冪等常見做法:https://blog.csdn.net/weixin_34174322/article/details/91721401
4. 查詢類接口 根據業務 考量是否需要加緩存,以便快速讀取;
5.考慮請求超時的情況;
6.考慮部分成功部分失敗的情況
7. 狀態流轉不可逆,即更新狀態時必須有前置狀態;
8. 避免for循環調用下層服務;
9. 防止空指針異常;
10. 需要人工干預的關鍵業務節點進行業務報警;
11. 敏感信息展示脫敏、存儲加密;
12. 規範代碼,單個方法不超過60行,方法註釋準確清晰;
13. 充分自測,寫集成測試、mock測試,提高提測質量。
歡迎補充...