API結(jié)果過濾器
同個(gè)API在不同使用的場景中,默認(rèn)的返回結(jié)構(gòu)不一定能夠滿足調(diào)用者實(shí)際的需求,因此我們支持通過配置過濾器的方式,使用戶可以對API返回的原始結(jié)構(gòu)進(jìn)行靈活的轉(zhuǎn)換,減少用戶API對接及二次開發(fā)的成本。本文為您介紹如何使用API結(jié)果過濾器。
使用方式
正確配置過濾器并生效后,會(huì)對返回結(jié)果自動(dòng)進(jìn)行格式轉(zhuǎn)換
結(jié)果示例
某個(gè)API原始返回結(jié)構(gòu)如下
參數(shù) | 說明 |
code | 返回狀態(tài)碼 SUCCESS/ERROR。 |
data | 返回的數(shù)據(jù),根據(jù)數(shù)據(jù)源類型不同結(jié)構(gòu)也可能有所不同,一般為ArrayList或者jsonObject結(jié)構(gòu)。 |
traceId | 本次調(diào)用追蹤的唯一ID |
message | 當(dāng)code為ERROR會(huì)在message里返回錯(cuò)誤原因 |
若API使用者希望去掉code、traceId等字段的封裝只返回其中data的部分。
當(dāng)正確配置過濾器后,返回結(jié)構(gòu)如下:
可以看到返回結(jié)果中只剩下了data字段里的內(nèi)容,無需用戶再手動(dòng)轉(zhuǎn)換。
兩種配置方式介紹
第一種:API開發(fā)過程配置過濾器
在API開發(fā)過程中配置過濾器,配置完成后對所有調(diào)用都會(huì)生效。
使用方式
在API創(chuàng)建/編輯過程中,第三步API配置及測試頁面,點(diǎn)擊返回內(nèi)容左上方過濾器按鈕啟用過濾器。
過濾器有兩種設(shè)置方式:
格式處理:使用指定的方式對返回結(jié)果進(jìn)行處理,分別是過濾code字段、過濾message字段、過濾traceId字段以及僅返回data內(nèi)容,支持多選。
自定義邏輯:使用自定義腳本的方式,對整個(gè)返回?cái)?shù)據(jù)的結(jié)構(gòu)進(jìn)行轉(zhuǎn)換。目前支持js函數(shù),后續(xù)會(huì)開放對更多種腳本語言的支持。 自定義邏輯的js函數(shù)腳本示例:
function filter(response) { // 獲取返回結(jié)果data中第一組數(shù)據(jù) var data = response.data[0]; // 拼接證件號(hào)碼和客戶名稱后返回結(jié)果 return data.zzhm + " : " + data.khmc; }
使用上述腳本執(zhí)行轉(zhuǎn)換的結(jié)果:
設(shè)置完成后過濾器生效,關(guān)閉過濾器按鈕則失效。
第二種:已獲授權(quán)API配置過濾器
調(diào)用者對于獲得授權(quán)的API,可以再單獨(dú)設(shè)置一個(gè)過濾器,此過濾器只有在當(dāng)前獲得授權(quán)的應(yīng)用調(diào)用API時(shí)才會(huì)失效,不會(huì)影響API本身的返回結(jié)構(gòu),也不會(huì)影響其他的應(yīng)用對該API調(diào)用。
如果一個(gè)獲得授權(quán)的API已經(jīng)在開發(fā)過程中開啟了過濾器,那么再開啟應(yīng)用授權(quán)過濾器后,兩個(gè)過濾器會(huì)同步生效:應(yīng)用授權(quán)過濾器會(huì)對API由過濾器轉(zhuǎn)換后的結(jié)果,按照設(shè)置的方式進(jìn)行再次過濾,最終返回給調(diào)用方。
使用方式
在已獲授權(quán)API列表頁,找到對應(yīng)獲得授權(quán)的API,點(diǎn)擊右側(cè)操作列中的測試,進(jìn)入已獲授權(quán)API測試頁面。
在已獲授權(quán)API測試頁面,點(diǎn)擊打開過濾器按鈕,便可配置過濾器,配置的方法和API開發(fā)過程的過濾器相同。