别再说你不懂什么是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了的更多相关文章
- 使用百度地图API查地理坐标
在网络编程中,我们会和API打交道.那么,什么是API?如何使用API呢?本文分享了一下我对API的理解以及百度地图API的使用. API是"Application Programming ...
- Android开发学习之路-PopupWindow和仿QQ左滑删除
这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...
- Compass的误解与新发现
最后个人感觉 Compass是 css世界的.NET 很久以前看到 Compass 误以为是css编译器,因为总是在看到如何安装Scss的文章里面看到的 知道最近不小心进入 Compass官网溜达,才 ...
- 原生JS实现轮播+学前端的感受(防止走火入魔)
插件!插件!天天听到有人求这个插件,那个插件的,当然,用第三方插件可以大幅提高开发效率,但作为新手,我还是喜欢自己来实现,主要是我有时间! 今天我来给大家分享下用原生JS实现图片轮播的写法 前辈们可以 ...
- Eclipse使用笔记
eclipse内容辅助键 alt+ /用法: Alt+/ 提示作用 帮助补齐一些东西,还可以帮助你起名字, main+alt+/,syso+alt+/ alt+shift+s给出一些快捷操作,比如fo ...
- pyzmq学习笔记
前言 使用过简单的python的ZMQ:server开启3个线程,client发送心跳包,如果服务端超过n秒没应答,则重新连接. 网上找的案例,server使用的zmq.device,但是一直不明白什 ...
- vuex 简单理解
废话不多说,直接上图! 不懂的 参考 API
- OpenJDK源码研究笔记(十六):在Java中使用JavaScript脚本语言
友情提示 本文主要参考了51CTO上的一篇文章,代码经过自己的模仿和整理,还算凑合. 本文中的代码注释比较多,不再过多解释. 更多用法,还是得看JDK的API或者看原文http://developer ...
- 快速了解NIO
NIO的由来 我们都知道,在jdk1.4的时候就开始引入NIO了,它是基于Selector机制的非阻塞I/O,可以将多个异步的I/O操作集中到一个或几个线程中进行处理,目的就是为了代替阻塞I/O,提到 ...
随机推荐
- linux中KVM桥接网卡br0
在centos虚拟化当中需要增加一个桥接网卡,然后将虚拟化当中的机器的网卡桥接到桥接网卡,下面将描述设置方法: 查看现有网卡 [root@zb ~]# vim /etc/sysconfig/netwo ...
- Spring Cloud Netflix Eureka(注册中心)
Eureka简介 Eureka是Netflix开发的一个Service Discovery组件,spring cloud将其整合用来做服务注册中心,Eureka包括两部分Eureka Server 和 ...
- kali 安装redis
wget http://download.redis.io/releases/redis-2.8.3.tar.gz 下载 tar xzf redis-2.8.3.tar.gz ...
- [原题复现]2019强网杯WEB-随便注(多种方法)
简介 原题复现:https://gitee.com/xiaohua1998/qwb_2019_supersqli 考察知识点:SQL注入漏洞-堆叠注入 线上平台:https://buuoj.cn( ...
- php在线预览pdf文件
话不多说,直接上代码 <?php public function read_pdf($file) { if(strtolower(substr(strrchr($file,'.'),1)) != ...
- guitar pro系列教程(十二):如何设置Guitar Pro的不完全小节
当我们新建一个GTP谱的时候,我们肯定是要用到节拍,是的,一个乐谱节拍设置的好不好,将直接影响你的乐谱效果好不好,设置节拍的步骤我们之前也有讨论过,今天主要跟大家讲的便是不完全小节. 不完全小节顾名思 ...
- FL studio系列教程(十一):FL Studio中如何混音
要想得到"商业"品质的声音,我们就要学会混音.混音就是声音从乐器通道到路由到混音器.混音器中可以设置电平并添加各种效果,比如,添加混响.合唱以及延迟等等,这就是所谓的混音.那么FL ...
- 聊聊 elasticsearch 之分词器配置 (IK+pinyin)
系统:windows 10 elasticsearch版本:5.6.9 es分词的选择 使用es是考虑服务的性能调优,通过读写分离的方式降低频繁访问数据库的压力,至于分词的选择考虑主要是根据目前比较流 ...
- css万能清除原理
如果现在能有清理浮动的办法,但不至于在文档中多一个没有用的空标记,这时的效果是最好的!引入:after伪元素选择器,可以在指定的元素的内容添加最后一个子元素 .container:after{ } 如 ...
- Vue—新版本router-view 与 keep-alive 的互动
1. <keep-alive> 直接嵌套到 <router-view> 上会失效,正确写法: <router-view #="{ Component }&quo ...