一、背景
在平時(shí)工作中,經(jīng)常會(huì)遇到的一種場(chǎng)景是:A公司要對(duì)接B公司的API方法,這時(shí),A公司就要閱讀B公司的接口文檔,從接口文檔中找到自己需要對(duì)接的API,并根據(jù)接口文檔的要求,完成編碼工作,最終完成對(duì)接工作。
本篇是站在A公司的角度,去對(duì)接B公司API接口的實(shí)戰(zhàn)。
二、了解B公司接口的基礎(chǔ)約定
一般情況下,B公司都會(huì)給出以下類似約定來(lái)滿足基礎(chǔ)對(duì)接,并且會(huì)提供測(cè)試環(huán)境和正式環(huán)境的兩套信息。
appkey:A公司商戶平臺(tái) id
appsecret:A公司商戶平臺(tái) secret
三、請(qǐng)求及相應(yīng)格式說(shuō)明
一般情況下,B公司會(huì)提供請(qǐng)求及相應(yīng)的基礎(chǔ)格式說(shuō)明。
例如:
1、請(qǐng)求方式
post
2、請(qǐng)求消息格式
application/json
3、響應(yīng)消息格式
application/json
4、請(qǐng)求公共參數(shù)
例如,B公司有以下要求
所有接口均需要以 Http Header 方式傳遞以下參數(shù);
當(dāng)然,不同的公司提供的參數(shù)各不相同,因公司而異。
5、響應(yīng)/回調(diào)參數(shù)說(shuō)明
例如:B公司所有API都有響應(yīng),并且有的API還有回調(diào)響應(yīng),不論是響應(yīng)還是回調(diào)響應(yīng),它們的參數(shù)格式都一樣。
6、針對(duì)異步回調(diào)的說(shuō)明
例如:B公司對(duì)異步回調(diào)說(shuō)明如下:
異步回調(diào):
某些特定的接口需要異步返回結(jié)果,因此需商戶A提供一個(gè)回調(diào)地址,將其進(jìn)行base64 編碼后,配置在 Http 請(qǐng)求 Header 中的 callback_url 里。
應(yīng)答機(jī)制:
應(yīng)答機(jī)制是指當(dāng)商戶A收到B公司數(shù)據(jù)通知時(shí),必須回寫 success 字符串,不區(qū)分大小寫,B公司收到該“ success”,便認(rèn)為商戶A已收到通知; 否則會(huì)繼續(xù)重復(fù)請(qǐng)求回調(diào)接口 3 次, 時(shí)間間隔為 1s, 5s, 30s。如果 4 次都訪問(wèn)不通,則會(huì)間隔 3h 繼續(xù)輪詢回調(diào)。
回調(diào)解密:
回調(diào)使用 aes 加密,需解密后使用。為避免由于網(wǎng)絡(luò)波動(dòng)造成回調(diào)失敗,長(zhǎng)時(shí)間未收到回調(diào),請(qǐng)主動(dòng)查詢。
7、請(qǐng)求體加密說(shuō)明及示例
數(shù)據(jù)采用AES加密,加密后作為data的值。
示例:
加密前:
加密后:
8、回調(diào)解密說(shuō)明以及示例
數(shù)據(jù)采用AES解密,解密data值部分,解密后是json字符串
解密前:
解密后:
9、一般公司B還會(huì)對(duì)code值進(jìn)行說(shuō)明。
四、確定要對(duì)接哪些API
一般情況下,公司B會(huì)針對(duì)某個(gè)項(xiàng)目提供必要的API,我們往往只需要對(duì)接少部分API接口,因此,首先確認(rèn)要對(duì)接哪些API方法。我們只需要按照API的要求進(jìn)行對(duì)接即可。
五、根據(jù)API文檔,編寫一些基礎(chǔ)工具類
工具類分兩類。一類工具類,公司B會(huì)提供DEMO,我們拿來(lái)用即可。另外一類就需要自己根據(jù)API要求自己編寫了。
六、根據(jù)API文檔,編寫必要的DTO
針對(duì)每個(gè)API,主要包含請(qǐng)求DTO,響應(yīng)DTO,回調(diào)響應(yīng)DTO,這個(gè)就要跟蹤API要求,編寫滿足要求的DTO。
當(dāng)然有些DTO是可以抽象成一個(gè)類,例如一般響應(yīng)DTO和回調(diào)響應(yīng)DTO都是一樣的,這個(gè)時(shí)候就可以抽象為一個(gè)DTO了。
七、針對(duì)每個(gè)API方法,進(jìn)行對(duì)接
做好以上準(zhǔn)備工作,就可以一個(gè)個(gè)接口進(jìn)行對(duì)接了??刹捎孟旅娣绞揭粋€(gè)一個(gè)接口進(jìn)行對(duì)接。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-595355.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-595355.html
到了這里,關(guān)于api接口如何有效對(duì)接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!