如今系統中集成愈來愈顯得很重要了,不論是釘釘仍是支付寶等等等等,每一個系統都集成了多方的接口,並且愈來愈多系統功能都會集成的愈來愈多,咱們的信息化之網會越鋪越大:html
那麼調用第三方的接口,使用第三方的api文檔有什麼技巧嗎?前端
一、借鑑下別人寫一個博客一句話,感受不錯:java
其實調接口很簡單,原理和使用數據庫的數據差很少,數據庫
咱們使用本地數據庫的時候是經過: 鏈接數據庫——獲取數據(傳遞參數,獲取表中的數據)——返回前端——前端處理(封裝返回的數據,前端校驗是否成功)這麼一個流程,json
調用接口其實也差很少是這樣,發送請求(向第三方發送請求,傳遞參數)——收到數據(收到第三方的返回數據)——數據處理(數據解析)——返回前端——前端處理(前端展現封裝數據)。api
經過將SDK方法中返回的數據劃分爲正常返回數據以及錯誤返回的數據兩部分,讓調用者更簡單的對接口調用錯誤進行處理。微信
將SDK調用第三方服務接口的流程劃分爲: 數據準備,http請求,結果處理三部分,以重用代碼。工具
二、具體操做的一些技巧:post
(1)api文檔閱讀:主要看請求參數和返回數據,有些文檔有不少demo,這些demo會幫助咱們不少。url
參考這個內容: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