5分钟带你搞懂api接口~

在工作中经常被开发问到一句话"你给我一个接口让我调用一下呗",老板问能不能用自己的程序获取一些数据,开发往往也说"可以呀,让对方给一个接口和应用的权限,让我们调用一下就行了。"

这里所说的接口到底是什么呢?

什么是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、 识别项目中的关键风险点,特别是一些关键接口、数据量大需要进行大数据压测的接口,需要尽早安排联调和测试,并且对周边配合的项目提出要求。

说白了,联合调动测试,几个接口前端和后端按数据真实流程走一下,检查接口会不会断开。模块与模块的数据传输是否成功,不然会影响到用户体验度。

五、总结:

日常的产品开发过程中,涉及前后端数据交互的时候,往往会离不开接口调用,尽管产品经理一般不需要写接口文档(负责接口中间层产品经理除外),但对接口的一些基本知识了解清楚对日常和程序员需求沟通、需求传达还是非常必要。(毕竟懂技术的产品经理还是更吃香的~)

相关推荐
代码之光_198013 分钟前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
光影少年15 分钟前
vue2与vue3的全局通信插件,如何实现自定义的插件
前端·javascript·vue.js
As977_16 分钟前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
susu108301891118 分钟前
vue3 css的样式如果background没有,如何覆盖有background的样式
前端·css
ajsbxi19 分钟前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
Ocean☾20 分钟前
前端基础-html-注册界面
前端·算法·html
Dragon Wu22 分钟前
前端 Canvas 绘画 总结
前端
CodeToGym26 分钟前
Webpack性能优化指南:从构建到部署的全方位策略
前端·webpack·性能优化
~甲壳虫28 分钟前
说说webpack中常见的Loader?解决了什么问题?
前端·webpack·node.js
~甲壳虫31 分钟前
说说webpack proxy工作原理?为什么能解决跨域
前端·webpack·node.js