如今系统中集成愈来愈显得很重要了,不论是钉钉仍是支付宝等等等等,每一个系统都集成了多方的接口,并且愈来愈多系统功能都会集成的愈来愈多,咱们的信息化之网会越铺越大: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