真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

API錯(cuò)誤返回規(guī)范有哪些

本篇內(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)步。

禁止通過(guò)拋異常形式返回API業(yè)務(wù)錯(cuò)誤

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 saveDesposit(...);
  • 反例:

1
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException;

禁止通過(guò)拋異常形式返回API業(yè)務(wù)錯(cuò)誤

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 saveDesposit(...);
  • 反例:

1
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException;

需要調(diào)用方做錯(cuò)誤細(xì)分處理的,API提供方務(wù)必一并提供判斷工具類

  • 正例:

1
2
3
4
5
6
7
8
9
10
11
public void saveXXX(){
    Response result = xxxWriteService(...)
    if (!result.isSuccess()){
        if (xxxUtils.isBankUnSupport(result.getCode)){   <<
  • 反例:

1
2
3
4
5
6
7
8
9
10
11
public void saveXXX(){
    Response result = xxxWriteService(...)
    if (!result.isSuccess()){
        if ("10101".equals(result.getCode)){   <<<調(diào)用方按API提供方的錯(cuò)誤碼值做硬編碼,代碼耦合。
            //銀行渠道未開(kāi)通,需要特殊提示
            ...
        }else{
            ...
        }
    }
}

【推薦】API返回可直接顯示給用戶的中文提示信息

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)方式真如你想的那么好用嗎?

error message國(guó)際化原理:
  • 代碼中的提示信息國(guó)際化配置文件

  • 國(guó)際化提示原理

image-20180930162340975

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 saveTemplate(...) {

    try{
        ...
    }catch(StateMachineException e){
        log.warn("...");
        ...
        return Response.fail("模板配置正在審核中,請(qǐng)?jiān)趯徍送瓿珊笤俑?);
    }catch(Exception e){
        ...
    }
}
  • 反例:

1
2
3
4
5
6
7
8
9
10
11
12
public Response saveTemplate(...) {

    try{
        ...
    }catch(StateMachineException e){
        log.warn("...");
        ...
        return Response.fail("模板管理狀態(tài)機(jī)異常");
    }catch(Exception e){
        ...
    }
}

【推薦】返回具備可讀性,引導(dǎo)性的錯(cuò)誤提示信息

  • 正例:

1
2
3
4
5
6
7
8
9
10
11
12
public Response saveTemplate(...) {

    try{
        ...
    }catch(StateMachineException e){
        log.warn("...");
        ...
        return Response.fail("模板配置正在審核中,請(qǐng)?jiān)趯徍送瓿珊笤俑?);
    }catch(Exception e){
        ...
    }
}
  • 反例:

例1

1
2
3
4
5
6
7
8
9
10
11
12
public Response saveTemplate(...) {

    try{
        ...
    }catch(StateMachineException e){
        log.warn("...");
        ...
        return Response.fail("模板管理狀態(tài)機(jī)異常");  <<<< 你作為用戶,是不是嚇一跳?
    }catch(Exception e){
        ...
    }
}

例2

1
2
3
4
5
6
7
8
9
10
11
12
public Response saveTemplate(...) {

    try{
        ...
    }catch(StateMachineException e){
        log.warn("...");
        ...
        return Response.fail(e.getMessage());    <<<< message誰(shuí)都看不懂,沒(méi)有任何意義
    }catch(Exception e){
        ...
    }
}

“API錯(cuò)誤返回規(guī)范有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)頁(yè)名稱:API錯(cuò)誤返回規(guī)范有哪些
網(wǎng)站路徑:http://weahome.cn/article/ipjces.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部