封面图片

编程百科

什么是API

API的全称是Application Programming Interface,应用编程接口。


概念

在解释什么是API前,我们先看看什么是接口(Interface)。接口是实体间进行信息交换的介质,这个介质事先定义好了相互通信的协议,比如一只音响,提供了一个音频接口,外部存储声音数据的设备将声音数据按照协议要求进行编码并通过该接口将编码的音频数据传递给音响,音响获取信息并解码之后就可以播放音乐了。接口的产生就是为了打破实体间信息的不共享。可以让外部的信息进入到实体内部,也可以让内部的信息传输到外部实体上。

接口分为硬件接口和软件接口。而API就是一种软件接口。

对于软件接口可以多说几句。

在程序设计时的一个基本原则是:所有的资源默认都是不允许直接访问的,只允许透过有良好定义的接口来访问。软件接口提供可以访问电脑系统中资源(例如存储器、CPU、存储设备)的方式。若软件没有透过接口访问资源,而是直接访问相关资源,对机能以及稳定性都会造成不良的(而且可能是灾难性的)后果。

对于面向对象的编程语言中,有一种面向接口编程的程序设计风格。程序的逻辑以其对象的接口来呈现,而不是内部实现的细节。接口上的程序设计可以减少和实现相关的相依性,也可以提高程序的复用性。当两个模块需要通信的时候,一个模块提供接口,一个引用该接口。当接口实现发生变化时,并不影响引用该接口的模块功能。

说完接口的含义,再来看API其实就清楚很多了。API是一组用于构建和集成应用软件的定义和协议。信息技术提供商通过开发应用编程接口,也就是API,将信息以接口的方式提供给其他用户集成到应用中。其他应用在开发相关功能时,就不需要在重复开发,直接集成已经有的API,就可以大大提高开发效率。

API使用范围

  • 私有,仅供内部使用
  • 合作伙伴,共享给业务上的合作伙伴使用
  • 公共,可供所有人使用,第三方可以使用来开发应用

API简史

API 概念的出现,始于计算机时代的初期,远远早于个人电脑诞生之前。当时,API 常被当作操作系统的库,而且基本上都在本地系统上运行,仅偶尔用于大型机之间传递消息。将近 30 年后,API 走出了它们的本地环境。到了 21 世纪初,API 成为了用于实现数据远程集成的一种重要技术。

远程API和REST

远程API旨在通过通信网络进行互动。这里的远程是指 API 操控的资源不在提出请求的计算机上。由于互联网是应用最广泛的通信网络,所以大多数 API 都是基于 Web 标准来设计的。并非所有的远程 API 都是 Web API,但可以认为 Web API 都是远程 API。

Web API 通常会使用 HTTP 来传输请求消息,并提供响应消息的结构定义。这些响应消息通常都会以 XML 或 JSON 文件的形式来提供。XML 和 JSON 都是首选格式,因为它们会以易于其他应用操纵的方式来呈现数据。

随着 Web API 的不断普及,相应的协议规范也随之产生了,从而推动了信息交换的标准化:简单对象访问协议,简称 SOAP。使用 SOAP 设计的 API 会使用 XML 格式来收发消息,并通过 HTTP 或 SMTP 来接收请求。使用 SOAP 时,在不同环境中运行的应用或使用不同语言编写的应用能够更加轻松地共享信息。

相关的规范还有一个,即表述性状态传递REST。遵循REST架构约束的Web API被称为RESTful API。REST与SOAP有着根本区别:SOAP 是一种协议,而 REST 是一种架构风格。RESTful API现在变得比SOAP更为普及,主要是因为它实现起来更加简单灵活。

2023年05月05日
在初学者眼中,世界充满了可能;专家眼中,世界大都已经既定。--铃木俊隆