精通API架构:设计、运维与演进
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.2 API简介

在软件架构领域,有些术语非常难以定义。例如,API(应用程序编程接口),这个概念最早出现在大约80年前。那些存在了相当长时间的术语最终会被过度使用,并在不同的问题领域具有多个含义。我们认为API的含义如下:

●API代表底层实现的抽象。

●API由一份规范来定义,该规范引入了类型。开发人员需要能理解这些规范并使用工具以多种语言生成代码来实现API消费者(使用软件来调用API)。

●API具有定义明确的语义或行为,以有效地模拟信息的交换。

●有效的API设计使得我们可以将其扩展给客户或第三方,以实现业务集成。

广义上说,API根据调用方式可以划分为进程内以及进程外两个类别。这里所指的进程是指操作系统(OS)进程。例如,从一个Java类调用另一个Java类中的方法是一个进程内的API调用,因为调用的处理和调用的发起处于同一个进程。使用HTTP库的.NET应用程序调用外部类似REST的API是一个进程外的API调用,因为调用是由一个额外的外部进程而不是调用发起方的进程处理的。通常,进程外的API调用涉及在网络上传输的数据,可能是本地网络、虚拟私有云(VPC)网络或互联网。我们将重点关注后一种类型的API,然而,架构师经常会遇到将进程内API重构为进程外API的要求。为了演示这个概念(以及其他许多概念),我们将创建一个实际运行的案例研究,该案例研究将贯穿整本书并逐步演进。