HDG 解释:什么是 API?

在充满令人困惑和不熟悉的首字母缩写词(confusing and unfamiliar acronyms)的互联网上,很容易让人感到困惑。您可能听说过但从未受到启发去研究的一个网络首字母缩写词是“API”。

什么是APIAPI应用程序编程接口( application programming interface)的首字母缩写词,是一组例程和协议的名称,这些例程和协议使构建软件应用程序的过程变得更加容易。

查看API的一种简单方法是作为路线图,它告诉软件的组件如何交互。如果不使用API,源代码可能看起来很混乱,令人困惑。

但是,API(APIs)很复杂,需要的不仅仅是简短的总结。在本文中,让我们回顾一下API(APIs)的工作原理以及哪些站点和服务使用它们。

什么是 API,它是如何工作的?(What Is An API and How Does It Work?)

既然我们已经确定API是一组将软件指向正确方向的例程,那么这一切究竟是如何工作的呢?

解释API(API)核心功能的最佳方式是提供一个真实世界的示例。诸如 GrubHub 之类的送餐服务现在(Food)非常(GrubHub)受欢迎,所以让我们讨论一下这些移动应用程序背后的代码是如何工作的。

当您在其中一个应用程序上搜索餐厅或食物时,您会收到基于您的关键字和位置的相关结果。选择结果后,您会看到食品选项、交货时间和更多特定于餐厅的选项。

要安排您的交付,必须在交付网站和数据库之间建立连接——网站是前端,数据库是后端。该数据库存储所有这些餐厅的数据、每个位置的可用性、操作时间表、菜单等。

API是此数据库与呈现其数据的网站或应用程序之间的连接。重要的是要有一个API来创建这种连接,而不是使用硬编码的数据,这主要是因为第三方集成的普及。 

例如,如果第三方聚合器能够列出和组织所有可用的餐馆和项目,这对网站来说将是有益的,对吗?如果没有API,如果不使用低效的网络抓取技术,这将是不可能的。

API是负责将数据从数据库传递到应用程序的接口,无论是网站、移动应用程序还是其他任何应用程序。API(APIs)已成为通过 Web 访问和通信应用程序数据的标准方式,每个依赖第三方连接的主要网站或服务都通过提供 API 大大受益。

有哪些类型的 API?(What Types Of APIs Are There?)

有多种不同类型的API协议,但最流行的三种是SOAP简单对象访问协议(Simple Object Access Protocol))、REST表示状态传输(Representational State Transfer))和RPC远程过程调用(Remote Procedure Call))。

SOAP API(SOAP APIs)

SOAP于 1990 年代后期首次引入,它使应用程序能够通过使用网络连接以简单的方式共享资源。SOAP依赖于标准协议,例如HTTPSMTP,由于此类协议的普及,这使得它能够在几乎所有环境中使用。

它的主要优势在于它被广泛使用和建立。如果它没有坏,就不要修理它。

REST API(REST APIs)

REST 由Roy Fielding于 2000 年引入。它的直接目标是作为对广泛采用SOAP所产生的许多问题的回应。

SOAP类似,REST依赖HTTP在应用程序之间传输信息。但是,它与SOAP(SOAP)的一个主要区别在于它支持JSON,后者需要通过XML数据格式传输数据。JSON是一种数据格式,许多人认为它更易于读写。此外,REST API(REST APIs)可以缓存数据,从而获得更好的性能。

根据Cloud Elements 2017 年的一份报告, REST 现在占所有API(APIs)的 80% 以上。

RPC API(RPC APIs)

RPC API(RPC APIs)有多种形式,但正如我们从REST API(REST APIs)中了解到的,JSON是一种非常流行的数据格式,因此JSON-RPC是它最流行的。

JSON-RPC是最适合极简主义者和依赖其API直接性的用户的协议。与SOAP(SOAP)REST相比,它的范围要窄得多,而且它的灵活性和命令集非常有限——但对于一些开发人员来说,少即是多。

还有其他基于 RPC 的API类型,例如 gRPC,但如果您的优先级是实现的简单性,那么JSON-RPC是首选。(JSON-RPC)

谁使用 API?(Who Uses APIs?)

任何类型的开发人员,无论是前端还是后端,都应该有使用API(APIs)的经验。在网站或 Web 服务方面,几乎所有主要参与者都有某种可用的API — 最明显的是Windows

由于Microsoft Windows是这个星球上最流行的操作系统,因此应用程序开发人员自然需要一套关于如何与其 UI 交互的指南。如果无法访问Windows API,编写一个严重依赖于与操作系统交互的应用程序将是一个令人头疼的问题。

那里有成千上万的API(APIs),有些是免费的,有些是付费的。这里只是一些值得研究的例子:

API(APIs)是网络上一些最大和最重要的网站和应用程序背后的关键连接器之一。虽然普通用户可能无法看到API(APIs)提供的好处,但它们对于开发人员和 Web 服务来说是天赐之物。



About the author

拥有超过 10 年经验的发烧友工程师和音频产品专家。我专注于从头到尾创造优质的音乐扬声器和耳机。我是解决音频问题以及设计新扬声器和耳机系统的专家。我的经验不仅仅是制造好产品。我也热衷于帮助他人成为最好的自己,无论是通过教育还是社区服务。



Related posts