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是对接使用者和后台服务的程序接口。

参考

  1. https://www.bilibili.com/video/BV137411z7KM/?spm_id_from=333.788.videocard.1

有问题欢迎大家在评论区留言,转载请注明出处。

别再说你不懂什么是API了的更多相关文章

  1. 使用百度地图API查地理坐标

    在网络编程中,我们会和API打交道.那么,什么是API?如何使用API呢?本文分享了一下我对API的理解以及百度地图API的使用. API是"Application Programming ...

  2. Android开发学习之路-PopupWindow和仿QQ左滑删除

    这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...

  3. Compass的误解与新发现

    最后个人感觉 Compass是 css世界的.NET 很久以前看到 Compass 误以为是css编译器,因为总是在看到如何安装Scss的文章里面看到的 知道最近不小心进入 Compass官网溜达,才 ...

  4. 原生JS实现轮播+学前端的感受(防止走火入魔)

    插件!插件!天天听到有人求这个插件,那个插件的,当然,用第三方插件可以大幅提高开发效率,但作为新手,我还是喜欢自己来实现,主要是我有时间! 今天我来给大家分享下用原生JS实现图片轮播的写法 前辈们可以 ...

  5. Eclipse使用笔记

    eclipse内容辅助键 alt+ /用法: Alt+/ 提示作用 帮助补齐一些东西,还可以帮助你起名字, main+alt+/,syso+alt+/ alt+shift+s给出一些快捷操作,比如fo ...

  6. pyzmq学习笔记

    前言 使用过简单的python的ZMQ:server开启3个线程,client发送心跳包,如果服务端超过n秒没应答,则重新连接. 网上找的案例,server使用的zmq.device,但是一直不明白什 ...

  7. vuex 简单理解

    废话不多说,直接上图!                 不懂的 参考 API

  8. OpenJDK源码研究笔记(十六):在Java中使用JavaScript脚本语言

    友情提示 本文主要参考了51CTO上的一篇文章,代码经过自己的模仿和整理,还算凑合. 本文中的代码注释比较多,不再过多解释. 更多用法,还是得看JDK的API或者看原文http://developer ...

  9. 快速了解NIO

    NIO的由来 我们都知道,在jdk1.4的时候就开始引入NIO了,它是基于Selector机制的非阻塞I/O,可以将多个异步的I/O操作集中到一个或几个线程中进行处理,目的就是为了代替阻塞I/O,提到 ...

随机推荐

  1. MFC详解

    MFC的消息响应机制详解: 1.MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,接下来详细讲解. 2.在讲解MFC的消息响应之 ...

  2. Html+css 一个简单的网页模板

    一个简单的网页模板,有导航.子菜单.banner部分 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&q ...

  3. DWVA-命令注入漏洞闯关(Command Injection)

    前言 Vulnerability: Command Injection LOW级别 代码: <?php if( isset( $_POST[ 'Submit' ] ) ) { // 几首一个变量 ...

  4. python-Requests模块的使用

    1. Requests简介 Requests模块是一个用于网络访问的模块,其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能,那为什么R ...

  5. 新鲜出炉!阿里巴巴,京东,美团面经汇总,已拿offer!

    最近在后台收到了很多小伙伴的私信,说自己最近想好好准备一下,在不久后的秋招跳个槽往大厂冲击一下,想要我给大家整理出一份大厂面试题好用来做好准备.之前公司有点事比较忙就没回私信.最近好一点了我也是立马联 ...

  6. 吉他软件Guitar Pro入门

    Guitar Pro是一款优秀的吉他学习软件,初学者可以依靠其学习理论知识,也可以通过和弦添加.曲谱导出等功能来提升弹奏能力.今天,小编就给大家简略地介绍下吉他软件Guitar Pro. 乐谱编辑功能 ...

  7. 用FL Studio来给电子音乐混音的方法

    FL Studio也算是音乐人用的比较多的编曲.混音软件了,FL Studio的一大的特色就是电子音乐的制作.尤其是对混音的操作,混音是电音制作过程中一个非常重要的环节,非常重要. 混音是什么?混音的 ...

  8. Python GUI之Tkiner实战

    前言 Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安装包中.只要安装好 ...

  9. python接口测试3-JSON格式

    什么是JSON? 一种轻量级的数据交换格式.它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言.JSON具有自我描述性,很容易理解. 数据格式: { "name":& ...

  10. linux命令-awk,sort,uniq

    学习地址:http://man.linuxde.net/awk#awk的工作原理 awk 选项参数说明: -F fs or --field-separator fs 指定输入文件折分隔符,fs是一个字 ...