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

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

最新文章

  1. ngCordova
  2. 一个暂时无法理解的bug
  3. 第十九篇:提高SOUI应用程序渲染性能的三种武器
  4. [ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径
  5. POJ3630Phone List(字典树)
  6. 浅析mysql 共享表空间与独享表空间以及他们之间的转化
  7. (1)QlikView概要
  8. JMeter简单的性能测试实例
  9. 获取枚举Name,Value,Description两种方法
  10. 微型 ORM 的第二篇 DapperLambda性能测试[Dapper比较篇]
  11. Selenium之利用Excel实现参数化
  12. Fox And Jumping
  13. Log4j – Log4j 2 API
  14. Java爬虫——B站弹幕爬取
  15. SecureCRT 历史版本下载
  16. Java JTable视图窗口滚动并定位到某一行
  17. div阴影
  18. 【Linux】字符转换命令tr
  19. sql执行顺序与性能优化小技巧(一)
  20. 201621123005《Java程序设计》第九次实验总结

热门文章

  1. burpsuite暴力破解之四种方式
  2. html中table表格标题固定表数据行出现滚动条
  3. 自己总结的关于图论的一些算法实现(C语言实现,有较详细注释,800行左右)
  4. Java 中的PO VO DTO BO
  5. 动态SQL基本语句用法
  6. [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率
  7. 关于线上JVM动态参数设置调优
  8. java数组之排序
  9. HTML学习案例-仿慕课网网页制作(二)
  10. ShareSdk自己写的Demo