API 全称与词源详解
一、API 的全称
| 字母 | 全称 | 中文 |
|---|---|---|
| A | Application | 应用、应用程序 |
| P | Programming | 编程、程序设计 |
| I | Interface | 接口、界面 |
API = Application Programming Interface(应用程序编程接口)
二、一句话定义
API 是让不同软件之间能够相互通信、交换数据的约定和工具。
三、三个单词的词源拆解
1. Application(应用)
| 单词 | 词源 | 含义 |
|---|---|---|
| apply | 拉丁语 applicare(把...附着到...) | 应用、申请 |
| application | 名词形式 | 应用、应用程序 |
词源演变:
text
拉丁语 applicare(附着、连接) ↓ 古法语 application(附着、专注) ↓ 英语 application(应用、申请) ↓ 计算机领域:应用程序(附着在操作系统上运行的软件)
同源词:applicable(适用的)、applicant(申请人)
2. Programming(编程)
| 单词 | 词源 | 含义 |
|---|---|---|
| program | 希腊语 programma(公开的书面通知) | 程序、计划 |
| programming | 动名词形式 | 编程、程序设计 |
词源演变:
text
希腊语 pro(在前)+ gramma(书写) ↓ programma(公开的书面通知、公告) ↓ 拉丁语 programma(公告、法令) ↓ 英语 program(计划、程序) ↓ 计算机领域:编程(为计算机编写指令序列)
同源词:grammar(语法)、diagram(图表)、telegram(电报)
3. Interface(接口)
| 单词 | 词源 | 含义 |
|---|---|---|
| inter- | 拉丁语前缀 | 在...之间、相互 |
| face | 拉丁语 facies(脸、外表) | 脸、表面、界面 |
词源演变:
text
拉丁语 inter(在...之间)+ facies(脸、外表) ↓ 英语 interface(两个物体之间的接触面) ↓ 计算机领域:接口(两个系统之间的连接点)
同源词:
| 单词 | 构成 | 含义 |
|---|---|---|
| interact | inter + act | 互动(在...之间行动) |
| intercept | inter + cept | 拦截(在中间拿住) |
| surface | sur(上)+ face | 表面(上面的脸) |
| facet | face + et(小) | 方面、小平面 |
四、API 的字面意思
把三个词合起来,API 的字面意思是:
"让应用程序之间能够相互连接、通信的书面约定"
五、生活中的类比
类比1:餐厅服务员
text
┌─────────────────────────────────────────────────────────────┐ │ 顾客(你) API 厨房 │ │ ┌─────────┐ │ ┌─────────┐│ │ │ 想点菜 │ ──── 菜单 ───→ │ │ ││ │ │ │ │ │ ││ │ │ 吃什么?│ ←── 上菜 ───── │ "菜单就是 │ ││ │ │ │ │ API" │ ││ │ │ │ │ │ ││ │ └─────────┘ │ └─────────┘│ │ ↑ ↑ ↑ │ │ 应用程序 API接口 │ │ │ (调用方) (规定) │ │ │ 服务器 │ │ (提供方)│ └─────────────────────────────────────────────────────────────┘
| 角色 | 生活例子 | 编程世界 |
|---|---|---|
| 顾客 | 想吃东西的人 | 调用 API 的应用程序 |
| 菜单 | API 文档 | 规定了可以点什么、怎么点 |
| 服务员 | API 接口 | 接收请求、传递结果 |
| 厨房 | 服务器 | 实际处理请求、返回数据 |
类比2:电源插座
text
┌─────────────────────────────────────────────────────────────┐ │ │ │ ┌───────────────┐ ┌───────────────┐ │ │ │ │ │ │ │ │ │ 电器 │ ──→ │ 电源插座 │ ──→ │ │ │ (你的程序) │ │ (API接口) │ │ │ │ │ │ │ │ │ └───────────────┘ └───────────────┘ │ │ ↑ ↑ │ │ 调用API 接口定义 │ │ (插插头) (插座规格) │ │ │ │ API = 电源插座规格 │ │ 作用:规定了形状、电压、电流,让不同电器都能接入电网 │ └─────────────────────────────────────────────────────────────┘
六、API 的核心特征
| 特征 | 说明 | 类比 |
|---|---|---|
| 约定 | 规定了可以做什么、怎么做 | 菜单规定了可以点什么菜 |
| 接口 | 连接调用方和提供方 | 插座连接电器和电网 |
| 抽象 | 隐藏内部实现细节 | 不需要知道厨房怎么做菜 |
| 标准 | 让不同软件能互通 | USB 接口让不同设备都能连接 |
七、API 在计算机中的层次
text
┌─────────────────────────────────────────────────────────────┐ │ 用户 │ │ ↓ │ │ 应用程序(微信、浏览器等) │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ API 层(接口层) │ │ │ │ - 操作系统 API(文件、进程、内存) │ │ │ │ - Web API(HTTP 请求、RESTful) │ │ │ │ - 数据库 API(SQL 查询) │ │ │ │ - 第三方 API(支付、地图、登录) │ │ │ └─────────────────────────────────────────────────────┘ │ │ ↓ │ │ 操作系统 / 服务器 / 数据库 │ └─────────────────────────────────────────────────────────────┘
八、常见的 API 例子
| API 类型 | 例子 | 作用 |
|---|---|---|
| 操作系统 API | Windows API | 程序可以创建窗口、读写文件 |
| Web API | 微信支付 API | 网站可以调用微信支付 |
| 数据库 API | JDBC、ODBC | Java 程序可以连接数据库 |
| 第三方 API | 高德地图 API | 应用可以显示地图 |
九、词源总结
| 单词 | 词源 | 字面含义 | 计算机含义 |
|---|---|---|---|
| Application | 拉丁语 applicare(附着) | 附着的东西 | 应用程序 |
| Programming | 希腊语 programma(公开书写) | 预先写好的计划 | 编程 |
| Interface | 拉丁语 inter(之间)+ facies(脸) | 之间的脸面 | 连接点、接口 |
十、一句话总结
API = 应用程序编程接口,词源上:
Application来自"附着",表示运行在系统上的软件Programming来自"预先书写",表示编写的指令序列Interface来自"之间的脸面",表示两个系统之间的连接点
合起来就是:"让应用程序通过预先约定好的方式相互连接、通信的桥梁"。
就像电源插座规定了形状和电压,让不同电器都能接入电网;API 规定了调用方式和数据格式,让不同软件都能互相通信