在工作中经常被开发问到一句话"你给我一个接口让我调用一下呗",老板问能不能用自己的程序获取一些数据,开发往往也说"可以呀,让对方给一个接口和应用的权限,让我们调用一下就行了。"
这里所说的接口到底是什么呢?
什么是API?了解它对我们PM有什么用呢?本文就API理论知识带你了解它的作用。
一、什么是API?
在教科书上API是这样被解释的:
API又称应用程序接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分为小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。
说了这么多,是不是一个字都没听懂?莫急且听我慢慢道来:
API,其实是接收你的指令传输给电脑,再将电脑的反馈传递给你的一个现实,这么说,你可以把API想象成是餐馆服务生,菜单上有你想吃的牛排,而厨房就是那个杀牛的备菜部门,但是这里面缺失一个环节,是把你的简单指令传递给厨房,再从厨房端菜到你桌上的一个服务生,所以服务生接收你的指令,再把你的指令传递给厨房,最后再从厨房把牛排端到你桌上,这就是API的作用。
二、接口类型
API接口按位置分:
1、内部接口:连接产品内部数据接口,可以对接前端与和后台数据传输。
比如电商平台的前台和后台之间接口调用,比如查询界面,我前端是不是用传 输入的参数 到后端去查询结果,后端怎么去处理业务获取数据,这些方法 形成一个接口,就是内部接口。
2、外部外部:找第三方(数据统计或者第三方功能)
比如在医院,内科检查时,医生不能很清楚了解你的具体情况,这个时候需要借助第三方工具------内科仪器,仪器检查后的数据通过电脑输出给医生。在这个事件中,仪器电脑是外部接口。
API接口按功能类型分:
1、同步接口:A系统请求B系统接口之后,必须获得B系统接口的响应后才会执行下一步操作。
同步接口我们可以理解,你们去买票,你付款相当你发送一个请求,那么你回立马要求他给你一张票,给你一张票相当于返回数据,那么同步接口有实时性,你发送请求,需要他在有限的时间内立马返回数据,没返回数据就交易失败,回报错,那么售票员回反馈交易失败的原因。
例如:登录操作的时候调用第三方平台接口(如微信)进行登录,需要跳转到微信进行验证并返回验证结果后,才能登录成功。
总结:
①同步接口实时交互的
②同步接口有时间限制,超过有限时间,就会报错timeout
2、异步接口:A系统请求B系统接口之后,不需要等待源系统返回结果就可以进行下一步操作。
例如:
异步接口可以理解为,你找黄牛买票,你给钱给到黄牛,把你的要求和联系方式告诉黄牛,黄牛告诉你收到信息和钱了,这个时候你不要等他返回了,你就可以干其他的事情去了,OK黄牛也接很多人的单子,他把单子放在这里,然后按照名单上面的数据一个一个去完成,完成了,他就会打电话告诉你,你票买到了,那么这个就是异步接口。
案例:我们进程去提交订单,他返回订单ID给我们,我们通过订单查看结果,这个订单有没有完成,比如我们经常遇到界面显示在处理中。。。。
总结:
1、异步接口交互不是实时的
2、异步接口你需要实时去查询,通过调用另一个接口查看结果,或者你给他们一个回调的地址,他做完之后通过这个地址返回信息给你。这就是异步接口。
三、接口有什么用?
通过API,即使不知道对方系统内部如何操作,也能实现自己的系统与对方系统的交互。
在日常开发过程中,前后端有数据交互时,前端开发同事都会问后端询问接口,而不需问/关注具体的实现逻辑,高效便捷。
例如:
APP/物流上需展示天气信息,那么开发同学直接接入对应的天气/物流查询接口就行此外,接口的开放让许多第三方应用可以快速、轻松实现更多功能,如第三方支付、分享组件等等。
四、对产品经理的作用与意义
1、明确各个系统之间的数据流转,特别是功能系统的产品经理,只有在知道了功能设计的目的、需要对外提供什么样的接口服务,需求设计阶段才能够考虑得更加全面;
2、掌握开发总体工作量,而不局限于功能;另外,在安排项目计划时能够考虑到与周边系统联调的时间,计划安排才会更加合理;
简而言之,产品经理不一定不用懂要干嘛,但是一定得以了解为主,清楚它是干嘛的就ok了。
3、 识别项目中的关键风险点,特别是一些关键接口、数据量大需要进行大数据压测的接口,需要尽早安排联调和测试,并且对周边配合的项目提出要求。
说白了,联合调动测试,几个接口前端和后端按数据真实流程走一下,检查接口会不会断开。模块与模块的数据传输是否成功,不然会影响到用户体验度。
五、总结:
日常的产品开发过程中,涉及前后端数据交互的时候,往往会离不开接口调用,尽管产品经理一般不需要写接口文档(负责接口中间层产品经理除外),但对接口的一些基本知识了解清楚对日常和程序员需求沟通、需求传达还是非常必要。(毕竟懂技术的产品经理还是更吃香的~)