别再说你不懂什么是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,提到 ...
随机推荐
- Spring Boot优雅地处理404异常
背景 在使用SpringBoot的过程中,你肯定遇到过404错误.比如下面的代码: @RestController @RequestMapping(value = "/hello" ...
- Vue3.0 响应式数据原理:ES6 Proxy
Vue3.0 开始用 Proxy 代替 Object.defineProperty了,这篇文章结合实例教你如何使用Proxy 本篇文章同时收录[前端知识点]中,链接直达 阅读本文您将收获 JavaSc ...
- zabbix的搭建及操作(3)监控 MySQL 及 HTTP 状态监控
书接上回 -- 详情点击 Server端以配置好 mariadb(MySQL) 及 http 服务 Zabbix实现监控 mysql 数据库 server服务器端配置 vim /usr/local/z ...
- Mac太卡了怎么办?用CleanMyMac四招让它飞起来
许多小伙伴使用Mac后都反馈电脑不如想象中的流畅,甚至有点卡顿的现象,原因可能是因为无用的应用占据了过多的内存,或者是系统盘垃圾过多,导致的电脑卡顿现象. 今天小编教给大家几招,让自己的Mac能够一键 ...
- 关于Camtasia2020安装完成之后无法运行问题的解决方法
在录像编辑软件Cmtasia更新到了2020版本之后,有部分小伙伴们遇到了这样的问题:在我们安装好软件之后,居然无法运行.今天小编就给大家介绍一下该如何解决这个问题. 方法一: 第一步,选中桌面上Ca ...
- Lombok之@Builder注解
Lombok之@Builder注解 前言 Lombok大家都知道,在使用POJO过程中,它给我们带来了很多便利,省下大量写get.set方法.构造器.equal.toString方法的时间.除此之外, ...
- Linux中配置环境变量
Linux中环境变量的搭建(推荐用法) 第一步:进入到/etc/profile.d文件夹下 cd /etc/profile.d 第二步:创建并编辑一个my_env.sh文件 vim my_env.sh ...
- 自定义JSTL Tag
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java ...
- SpringBoot的条件注解源码解析
SpringBoot的条件注解源码解析 @ConditionalOnBean.@ConditionalOnMissingBean 启动项目 会在ConfigurationClassBeanDefini ...
- python基础之操作列表
遍历元素 magicians = ['alice','david','carolina'] for magician in magicians: print(magician) magicians = ...