现在系统中集成越来越显得很重要了,不管是钉钉还是支付宝等等等等,每个系统都集成了多方的接口,而且越来越多系统功能都会集成的越来越多,我们的信息化之网会越铺越大:
那么调用第三方的接口,使用第三方的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