通俗易懂的解释:什么是API
API 全称 Application Programming Interface,即应用程序编程接口。
看到这里,急性子的小白同学马上就憋不住了:这不管是英文还是中文我每个字都懂啊,只是凑一块就不知道什么意思了,兄弟你能不能说人话啊?
别着急,让我们先看一个小小的比方。
一个小比方
有一天,小明来到了一家餐厅,想要吃上一份他最爱的北京烤鸭。
而他只需要把订单交给服务员,然后就可以等着大口吃肉,大碗喝酒了。
看完这个比喻,小白同学又发话了:等等,你小明吃北京烤鸭关我API什么事?
别急,让我们把这等价关系捋一捋。
小明 = 使用者
北京烤鸭 = 服务
厨房 = 后台系统/数据库
服务员 = API
小明把想要的北京烤鸭告诉服务员,服务员就能去厨房把这道菜送来。
作为顾客他不需要知道这道菜是怎么做的,他只需要安心享用美味即可。
代入等价关系。
使用者向API索取想要的服务,API就能去后台把服务结果返回给使用者。
作为使用者他不需要知道服务是如何实现的,他只需要安心使用服务结果即可。
所以啊,API就是一个负责将后台服务提供给使用者的服务员。
看完了比方,接下来让我们看看现实生活中的哪些东西是API。
现实生活中的API
不只是程序员会经常使用到API,现代社会中,几乎每个人都无时不刻不在享受API带来的便利。
当你想在电商平台购买一双鞋时,你在尺码框里勾选了码数后,系统就会告知你还剩多少库存。尺码框这个服务员偷偷将你的码数报给了后台,再把后台那里得来的消息告诉你,所以这个尺码框就是一个API。
同样,当你在预定一张机票时,你在信息栏中填入了相应的个人信息,提交完后很快就出票了,并且航空公司的数据库里也同时产生了相应的订单。这些有着信息栏模样的服务员也是API,它们带着你的个人信息去后台帮你买好了票再拿回来给你。
此外还有,别人写好的函数,编译好的程序,一些公司提供的AI接口等都是API。因为你只需要调用它,便可以得到计算结果,无需知道具体实现过程。
看完以上现实生活中的例子,让我们用稍微专业点的话来概括一下API:
API是对接使用者和后台服务的程序接口。
所以如果有这么一个程序或函数等,可以对接你和后台服务的,那么我们就可以称其为API。
小白同学: 接口这个概念我不是很明白啊,你能不能解释一下?
所谓接口,就是负责对接的。就像服务员是对接顾客和后厨的,而程序接口就是负责对接使用者和后台系统的。
小白同学:我在网上看到有一个概念叫“API文档”,这又是什么东西啊?
很简单,API文档就是用来介绍API的,即它能告诉你该API的返回结果,以及如何调用等。
总结
API是对接使用者和后台服务的程序接口。本文利用比方通俗易懂地解释了API这个概念,并介绍了API存在于实际生活中的哪些地方。
参考
有问题欢迎大家在评论区留言,转载请注明出处。
通俗易懂的解释:什么是API的更多相关文章
- 【转】能否用讲个故事的方式,由浅入深,通俗易懂地解释一下什么是天使投资,VC,PE.
能否用讲个故事的方式,由浅入深,通俗易懂地解释一下什么是天使投资,VC,PE 今天在知乎上看到一篇文章,觉得值得一转的,Here. 我给楼主讲个完整点的故事吧.长文慎点,前方高能,自备避雷针.18岁以 ...
- 如何才能通俗易懂的解释javascript里面的"闭包"?
看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量 ...
- 如何才能通俗易懂地解释JS中的的"闭包"?
看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量 ...
- python装饰器通俗易懂的解释!
1.python装饰器 刚刚接触python的装饰器,简直懵逼了,直接不懂什么意思啊有木有,自己都忘了走了多少遍Debug,查了多少遍资料,猜有点点开始明白了.总结了一下解释得比较好的,通俗易懂的来说 ...
- Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化c,seria ...
- [转]Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
原文地址:https://blog.csdn.net/qq_27093465/article/details/78544505 遇到这个 Java Serializable 序列化这个接口,我们可能会 ...
- 通过代码解释什么是API,什么是SDK?
这个问题说来惭愧,读书时找实习面的第一家公司,问的第一个问题就是这个. 当时我没能说清楚,回去之后就上百度查.结果查了很久还是看不懂,然后就把这个问题搁置了. 谁知道毕业正式工作后,又再一次地面对了这 ...
- RPC框架-通俗易懂的解释
早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能.这不是整人么?于是就出现了IPC( ...
- 【前端开发】关于闭包最通俗易懂的解释 for循环,定时器,闭包混合一块的那点事。
for循环,定时器,闭包混合一块的那点事. 1,对于一个基本的for循环,顺序输出变量值. for(var i = 1; i < 4; i++){ console.log(i);//结果不多说了 ...
随机推荐
- 【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
问题描述 C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Ap ...
- VMware Workstation 16 启动虚拟机失败(vmmon 版本问题)
问题简述 在 Manjora Linux 下,之前更新过系统,这次启动虚拟机居然就是失败了. 报错信息如下: Version mismatch with vmmon module: expecting ...
- Arduino IDE开发ESP8266-01S连接MQTT服务器 控制继电器点亮LED
准备条件: 1.Arduino IDE 2.ESP-01S模块 2.MQTT服务器 3.手机热点或路由器热点 Wi-Fi芯片 默认订阅的主题是 "开关控制" 当你发送主题 &q ...
- C#中存储过程和DataTable的应用
存储过程p_OperatorDetails,有四个参数@sDatetime,@eDatetime,@operatorNo,@transdesc.其中@operatorNo和@transdesc为两个可 ...
- spark使用idea向yarn提交报错:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
解决方法: 找到1.19版本放到spark的jars目录下
- EasyPoi中@Excel注解中numFormat的使用
需求说明:使用EasyPoi时导出文件中折扣字段是小数,被测试同学提了一个bug,需要转成百分数导出. 个人觉得应该转百分号只要在@Excel注解里面加个属性即可,但是在网上的easypoi教程中没有 ...
- “500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)【成功完美简单极致】
"500 oops socket" Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)[成功完美简单极致] #自 ...
- user&group_management.md
登录shell bin/bash sbin/nologin useradd 的参数 -c comment 用户的注释性信息 -u UID 指定用户的UID -g initia ...
- Spring Security OAuth2.0认证授权三:使用JWT令牌
Spring Security OAuth2.0系列文章: Spring Security OAuth2.0认证授权一:框架搭建和认证测试 Spring Security OAuth2.0认证授权二: ...
- js如何替换字符串中匹配到多处中某一指定节点?
抛出一个问题,如图,搜索关键字,匹配到四处,那我鼠标放在第二处,我想把它变个颜色,该怎么实现呢?回到文章的标题,js如何替换字符串中匹配到多处中某一指定节点? 字符串的替换,我们首先想到的一个属性是r ...