API(Application Programming Interface,应用程序接口) 作为一个互联网行业的术语,很少被直接翻译过来,因为在中文中并没有一个对应的词汇可以完全表达其含义,如果强行翻译,可以被翻译为数据接口。
![图片[1]|API是什么](https://www.91yiqixue.com/wp-content/uploads/2022/03/API接口2.gif)
通俗理解什么是API
举个现实中的例子,比如购房网上面有全国房屋买卖的交易数据,万达公司在需要一些房屋交易数据来作为参考投产项目时,如果自己去做社会调研,费时、费力,非常不合算,所以万达公司每年都要向购房网支付数百万元来购买这些交易数据。大家是否考虑过,这一笔交易是以怎样的方式进行的呢?
所谓的一手交钱一手交货,交钱的流程比较简单,只要万达公司将资金汇给购房网就可以了,但是购房网是怎样将全国房屋买卖的交易数据交给万达公司呢?难道是直接将数据库复制给万达公司一份吗?
![图片[2]|API是什么](https://www.91yiqixue.com/wp-content/uploads/2022/03/API接口.gif)
这显然不可能。购房网是将一些API和权限交给万达公司的技术人员,万达公司的技术人员就可以通过调用这些 API 获取到他们所需要的交易数据。
操作系统API
操作系统 API 可分为两类:
- Windows API
- Linux API
下面分别对它们进行介绍。
1) Windows API
API 函数包含在 Windows系统目录下的动态连接库文件中。Windows API 是一套用来控制Windows的各个部件的外观和行为的预先定义的 Windows 函数。用户的每个动作都会引发一个或几个函数的运行以告诉 Windows 发生了什么。这在某种程度上很像Windows的天然代码。而其他的语言只是提供一种能自动而且更容易的访问API的方法。当你点击窗体上的一个按钮时,Windows 会发送一个消息给窗体,VB 获取这个调用并经过分析后生成一个特定事件。
更易理解来说:Windows 系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时他也是一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数)可以帮助应用程序达到开启视窗、描绘图形和使用周边设备等目的,由于这些函数服务的对象是应用程序,所以称之为Application Programming Interface,简称 API 函数。
WIN32 API 也就是 MicrosoftWindows 32位平台的应用程序编程接口。凡是在 Windows工作环境底下执行的应用程序,都可以调用 Windows API。
2) Linux API
在 Linux中,用户编程接口 API 遵循了 UNIX 中最流行的应用编程界面标准——POSIX 标准。
POSIX 标准是由 IEEE 和 ISO/IEC 共同开发的标准系统。该标准基于当时现有的 UNIX 实践和经验,描述了操作系统的系统调用编程接口 API,用于保证应用程序可以在源程序一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过 C库(LIBC)来实现的。
平台开发API
基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用。对外提供的API 调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。当然有些平台也不是完全免费的,这些平台提供了付费 API 的功能,比如百度的语音识别平台,提供了免费调用次数,当次数用完以后就需要付费,这种模式已经称为当下互联网企业非常流行的业务布局。
![图片[3]|API是什么](https://www.91yiqixue.com/wp-content/uploads/2022/03/百度语音识别接口.gif)
类似的平台还有很多,比如短信 API 平台,云打码平台,算力平台等等。
当然,API 是一个广义的概念,除了可以通过调用 APl 获取到数据资源外,还可以通过 API 提供和获取技术服务,在无数的 SDK (软件开发包)中都有所体现,在业内编写获取信息的 API,不论是使用什么编程语言,都需要遵循 RESTful规范,这是众所周知的事情。