http接口調(diào)用時注意事項

哎呀呀,今天本來都準備上線了,結(jié)果發(fā)現(xiàn)了一個小bug(不影響主流程的那種),是由于三方接口返回不明確引起的。主要的問題就是http接口對方返回的是null,而我沒有判空。當我判空后,又發(fā)現(xiàn),媽的格式又和約定好的不一樣,有個關(guān)鍵success字段居然是空的。。。( ̄▽ ̄)||
然后針對今天的問題,老大叫我去討論了下,并且傳授了一份在調(diào)用http接口時常見的注意事項。

接口編程(請求方)

接口調(diào)用常見流程

  • 請求參數(shù)合法校驗
  • 打印/記錄請求報文(日志和數(shù)據(jù)庫)
  • 調(diào)用
  • 網(wǎng)絡(luò)相關(guān)異常處理
    網(wǎng)絡(luò)連接異常
    網(wǎng)絡(luò)超時/合理設(shè)置超時時間
    其它未知異常
  • 打印/記錄返回報文
  • 報文格式校驗
  • 報文解析(解析也可以作為格式校驗的一部分)
  • 報文參數(shù)校驗(格式、取值范圍等)

接口調(diào)用切記

  • 不打印/記錄請求返回報文,給調(diào)試和排查問題帶來很大麻煩
  • 不處理網(wǎng)絡(luò)相關(guān)異常,程序不夠健壯
  • try/catch大量代碼,錯誤提示不友好、讓后續(xù)維護的人沒有安全感
  • 請求和返回參數(shù)校驗不充分,程序不夠健壯
  • 沒有設(shè)計錯誤碼/大量未知錯誤碼
  • 報文記錄時:不能等獲得返回報文時再和請求報文一起記錄,需要分別開新事物記錄到數(shù)據(jù)庫中

一定要注意設(shè)置合理的超時時間!以前做過一個很坑的項目,一個接口需要我設(shè)置5分鐘的超時時間,后來商量著讓對方改為異步的了,后續(xù)回調(diào)通知結(jié)果。
以上是是針對請求方的,如果以后最為提供方的話。

注意點

  • 接口文檔一定要寫詳細,每個字段的類型,是否必傳,枚舉說明,字段的長度。
  • 對于關(guān)鍵的返回值,比如狀態(tài)字段,一定要約定好,不能隨意增減。
  • 接口地址一般前綴都會加上版本/v1/xxx之類的
  • 接口升級時,請一定要注意對以往版本的兼容(/(ㄒoㄒ)/~~特別是新增字段這種,不要出現(xiàn)由于以往版本由于字段無法識別導(dǎo)致錯誤的情況)
  • 接口要精簡,不要傳無用字段
  • 對于處理時間很長的接口,采用回調(diào)通知結(jié)果的方式
  • 一定要記錄接口的調(diào)用(request,response)情況(同上)
  • 對每個接口的調(diào)用方要以渠道號區(qū)分,每個渠道使用不同的密鑰
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,307評論 6 13
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,600評論 0 20
  • “我們的記憶與靈魂不見了,只剩下肉體。 “好人的靈魂會升入天堂,壞人的靈魂會掉入地獄。 “365...
    薛子緣閱讀 424評論 0 1

友情鏈接更多精彩內(nèi)容