現在系統中集成越來越顯得很重要了,不管是釘釘還是支付寶等等等等,每個系統都集成了多方的接口,而且越來越多系統功能都會集成的越來越多,我們的信息化之網會越鋪越大:
那么調用第三方的接口,使用第三方的api文檔有什么技巧嗎?
1、借鑒下別人寫一個博客一句話,感覺不錯:
其實調接口很簡單,原理和使用數據庫的數據差不多,
我們使用本地數據庫的時候是通過: 連接數據庫——獲取數據(傳遞參數,獲取表中的數據)——返回前端——前端處理(封裝返回的數據,前端校驗是否成功)這么一個流程,
調用接口其實也差不多是這樣,發送請求(向第三方發送請求,傳遞參數)——收到數據(收到第三方的返回數據)——數據處理(數據解析)——返回前端——前端處理(前端展示封裝數據)。
通過將SDK方法中返回的數據划分為正常返回數據以及錯誤返回的數據兩部分,讓調用者更簡單的對接口調用錯誤進行處理。
將SDK調用第三方服務接口的流程划分為: 數據准備,http請求,結果處理三部分,以重用代碼。
2、具體操作的一些技巧:
(1)api文檔閱讀:主要看請求參數和返回數據,有些文檔有很多demo,這些demo會幫助我們很多。
參考這個內容:http://www.pmcaff.com/discuss/index/480006465919040?pmc_param=1
1
2
3
|
為了讓更多同學更能看懂這個傳說中的API接口文檔,我舉個栗子,並予以詳細描述,其實真的很簡單!
首先得明白,任何對外接口,都至少(不僅限)包含兩個任務分類:<br>講清楚這個問題:首先分清楚平台:
|
三種角色:
A)互聯網公司
B)終端用戶
C)第三方商家/服務提供者
平台和非平台的區別在於,用戶用的產品/服務/信息,直接由A生產,還是直接或間接由C生產。
舉個例子,印象筆記就是個互聯網產品,它由印象筆記開發,歸印象筆記所有,用戶消費印象筆記提供的產品。
再舉個例子,淘寶就是個平台產品,用戶在上面購買的商品和阿里巴巴沒有直接關系,是由淘寶上面的C)第三方商家提供的。 淘寶只是為商家提供了這樣的場所/系統,引來了顧客。
作者:知乎用戶
鏈接:https://www.zhihu.com/question/21491868/answer/18825854
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
1
> 服務接口:在平台產品中,一般由商戶調用,平台負責處理;
2
> 通知接口:在平台產品中,一般由平台調用,商戶負責處理;
如上,接口的規范包括URL和請求的參數兩部分。
在這里,我拿我們支付平台的『短信驗證碼扣款接口』做個案例,如看不明白的,可以在評論里告知,我會抽時間回復,當然了,妹紙可以私信我,飯不吃,工不做也第一時間回復。
// 由於這個涉及到一些內部私密,本人只作一個簡要的說明,但作為牛逼如你的PM,應該能看懂的
1
、短信驗證碼扣款接口
1.1
業務流程(描述)
商戶在入駐簽約我們產品時(代收代付),可以選擇是否開通這個服務,並設定這個服務的規則,很顯然,商戶開通了,並且設定了用戶支付時發送短信驗證碼
商戶發起扣款,我們根據商戶設定的發送短信限額,如果單筆扣款金額超出短信金額限制,那么會給用戶發送一條短信驗證碼,用戶須用短信回復驗證碼,我們收到后再繼續檢查驗證碼並進行扣款
1.2
接口規范
因為涉及到扣用戶的資金,原則上是不能的,但這個用戶是和銀行和我們達成了三方協議,所以有了協議保障,再扣款則無問題
調用接口的流程略,那么到現在,列位看官,這個接口是服務接口還是通知接口呢?
URL:http:
//www.pmcaff.com/discuss/edit/523163678204992
請求方式:GET
請求參數:(至少包含以下幾個字段)
1
> 參數名:
2
> 參數含義:
3
> 格式說明:
4
> 是否必須:
WechatIMG949.jpeg
返回值參數
Clipboard Image.png
返回碼如下:
圖片.png
當這個接口被調用時,先校驗這個商戶與我們的簽名(sign&sign_method)是否OK,為什么需要校驗?不是你媳婦,人家能讓你牽手嗎?
然后把上述的URL帶上,再把簽名,再把上述
4
個參數拼接(需要哪些就拼接哪些)在一起,大概樣子如下:
URL:http:
//www.pmcaff.com/discuss/edit/523163678204992?contract_no=201407110000159812&sp_no=135800000001&sign=XXXXXXXXXXXXXXXXXXXX&sign_method=1&total_amount=1
然后會返回一個結果:
{
"err"
:
"0"
,
"msg"
:
"OK"
,
"token"
:
"b0947e3456032b74c5awarfafe8de1bcd55"
}
到現在你看懂了嗎?然后再回到我第一段里說的,
產品經理在這個環節,需要關注的不是文檔本身,而是API文檔里包含的字段參數是否符合我方業務訴求
|
(2)json數據解析:net.fs.json還是阿里的fastjson還是jacksondegnd
具體參考:https://www.cnblogs.com/huoer33/p/6638378.html
(3)調用第三方使用的工具:Httpclient、urlConnection還是RestTemplate
具體內容參考:http://blog.csdn.net/lmb55/article/details/70247018