日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 架構(gòu)師社區(qū)
[導(dǎo)讀]前言客戶端請(qǐng)求API,通常需要通過返回碼來判斷API返回的結(jié)果是否符合預(yù)期,以及該如何處理返回的內(nèi)容等。相信很多同學(xué)都吃過返回碼定義混亂的虧,有的API用返回碼是int類型,有的是string類型,有的用0表示成功,又有的用1表示成功,還有用“true”表示成功,碰上這種事情,只...

如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



前言如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



客戶端請(qǐng)求API,通常需要通過返回碼來判斷API返回的結(jié)果是否符合預(yù)期,以及該如何處理返回的內(nèi)容等。
相信很多同學(xué)都吃過返回碼定義混亂的虧,有的API用返回碼是int類型,有的是string類型,有的用0表示成功,又有的用1表示成功,還有用“true”表示成功,碰上這種事情,只能說:頭疼。
API返回碼的設(shè)計(jì)還是要認(rèn)真對(duì)待,畢竟好的返回碼設(shè)計(jì)可以降低溝通成本以及程序的維護(hù)成本。


HTTP狀態(tài)碼參考如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



以HTTP狀態(tài)碼為例,為了更加清晰的表述和區(qū)分狀態(tài)碼的含義,HTTP狀態(tài)做了分段。
如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



對(duì)于后端開發(fā)來說,我們通常見到的都是:
2XX狀態(tài)碼,比如200->請(qǐng)求成功。
5XX狀態(tài)碼,比如502->服務(wù)器異常,通常就是服務(wù)沒正常運(yùn)行,或者代碼執(zhí)行出錯(cuò)。
通過狀態(tài)碼即可初步判斷問題原因,HTTP狀態(tài)的設(shè)計(jì)思路值得借鑒。


參數(shù)約定如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



雖說是返回碼設(shè)計(jì),但是只有code是不行的,還要有對(duì)應(yīng)的message,讓人可以看懂。
如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



參考HTTP狀態(tài)碼的思路,我們對(duì)錯(cuò)誤碼進(jìn)行分段。
如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



通過這樣的設(shè)計(jì),不論是程序還是人都可以非常方便的區(qū)分API的返回結(jié)果,關(guān)鍵是統(tǒng)一!


個(gè)性化Message如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



通常我們的Message都是寫給工程師看的,但是在不同的場景下,同樣的錯(cuò)誤,可能需要給用戶看到不一樣的錯(cuò)誤提示。
比方說20000-29999表示訂單創(chuàng)建失?。?br />
  • 20001,訂單創(chuàng)建失敗,存在進(jìn)行中的訂單


  • 20002,訂單創(chuàng)建失敗,上一個(gè)訂單正在排隊(duì)創(chuàng)建中



這兩種錯(cuò)誤情況如果是給用戶看,可能就只適合看到:很抱歉,您有一個(gè)正在進(jìn)行中的訂單,請(qǐng)到我的訂單列表中處理。
但是對(duì)于API來說,返回的信息又必須是準(zhǔn)確的,但用戶看到的就必須轉(zhuǎn)譯,這個(gè)轉(zhuǎn)譯的工作調(diào)用方可以做,但是通常API提供者來提供個(gè)性化的Message能力會(huì)更好。
我們可以把轉(zhuǎn)譯的消息配置到數(shù)據(jù)庫,并緩存到Redis或者API本機(jī)。
如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



然后在請(qǐng)求處理結(jié)束即將返回的時(shí)候,根據(jù)application_id code,去匹配替換message。
如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



這樣我們就可以讓手機(jī)APP的用戶、微信小程序的用戶、網(wǎng)頁下單的企業(yè)用戶看到不同的消息。


返回信息的統(tǒng)一處理如何設(shè)計(jì)API返回碼(錯(cuò)誤碼)?



有了統(tǒng)一的code,我們就可以通過Nginx或者APM工具統(tǒng)計(jì)API請(qǐng)求Code數(shù)量及分布信息。
我們可以根據(jù)單位時(shí)間內(nèi)99999的數(shù)量來做API的異常告警。
我們可以根據(jù)Code的返回餅圖,幫助我們發(fā)現(xiàn)系統(tǒng)、業(yè)務(wù)流程中的問題。
等等……
總之,好的返回碼設(shè)計(jì),可以幫助我們提高溝通效率,降低代碼的維護(hù)成本


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉