本篇內(nèi)容介紹了“API錯(cuò)誤返回規(guī)范有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司執(zhí)著的堅(jiān)持網(wǎng)站建設(shè),成都小程序開(kāi)發(fā);我們不會(huì)轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運(yùn)營(yíng)十多年。專業(yè)的技術(shù),豐富的成功經(jīng)驗(yàn)和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
API禁止拋Checked異常,即業(yè)務(wù)處理上的參數(shù)錯(cuò)誤、邏輯錯(cuò)誤、業(yè)務(wù)錯(cuò)誤等禁止通過(guò)拋異常形式返回,應(yīng)用Response#code, message表達(dá)業(yè)務(wù)錯(cuò)誤。
注:不要逼調(diào)用方到處寫(xiě)try{}catch()。
正例:
1 |
Response |
反例:
1 |
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException; |
API禁止拋Checked異常,即業(yè)務(wù)處理上的參數(shù)錯(cuò)誤、邏輯錯(cuò)誤、業(yè)務(wù)錯(cuò)誤等禁止通過(guò)拋異常形式返回,應(yīng)用Response#code, message表達(dá)業(yè)務(wù)錯(cuò)誤。
注:不要逼調(diào)用方到處寫(xiě)try{}catch()。
正例:
1 |
Response |
反例:
1 |
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException; |
正例:
1 2 3 4 5 6 7 8 9 10 11 |
public void saveXXX(){ Response |
反例:
1 2 3 4 5 6 7 8 9 10 11 |
public void saveXXX(){ Response |
API失敗時(shí),只有API實(shí)現(xiàn)方最清楚是什么原因,該怎么提示。那么,請(qǐng)?zhí)峁?duì)應(yīng)的提示信息。
我們系統(tǒng)中存在一些用國(guó)際化風(fēng)格的error message,而當(dāng)前的國(guó)際化實(shí)現(xiàn)方式真如你想的那么好用嗎?
代碼中的提示信息國(guó)際化配置文件
國(guó)際化提示原理
1) 提示信息國(guó)際化的行為發(fā)生在Web層,Web層啟動(dòng)時(shí)會(huì)加載Web層的resources/messages提示信息文件
2)當(dāng)REST API需要返回提示信息時(shí),Web會(huì)根據(jù)HTTP 請(qǐng)求中的Locale值(例如:zh_CN、zh_TW、en_US、es_ES_Traditional_WIN等)來(lái)決定返回哪一種語(yǔ)言的提示信息。將errorMessage以此種語(yǔ)言方式返回給瀏覽器進(jìn)行提示。
問(wèn)題:
1)在分布式系統(tǒng)中,各個(gè)應(yīng)用按領(lǐng)域自治,其resources/messages只維護(hù)了自身業(yè)務(wù)需要的errorMessage。
2)當(dāng)圖中C Service 將errorMessage = template.status.not.match 返回給 XX Service,XX Service直接透?jìng)鹘oXX Web的情況下,XX Web的resources/messages是不包括template.status.not.match的,所以此errorMessage將無(wú)法正確的展示其本應(yīng)該提示的信息。
所以,推薦API返回可直接顯示給用戶的中文提示信息。
正例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
反例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
正例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
反例:
例1
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
例2
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
“API錯(cuò)誤返回規(guī)范有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!