BLOG

掌握 API 架构主动权:从了解 API 基础知识开始

Byron McNaught 缩略图
Byron McNaught
Published December 05, 2022


应用编程接口 (API) 风靡一时。

图片1

虽然 API 并非新鲜事物,但近几年发生的情况(如新冠疫情期间数字化转型加速、软件集成增强以及为云重新构建传统应用平台付出的努力),已导致 API 持续无序扩展,企业为在现代数字经济中取得成功而做出的管理、安全甚至是架构的选择为之受到影响。

本质上,API 代表着机器的崛起。除此之外,好在人类仍可以控制其构建、管理和安全(至少目前如此)。

图片2

从根本上看,在“API 语言”(可以这么说)中,消费者通常通过由各种标准、架构和规范组成的统一接口,向生产者发送查询或请求。

例如,国家气象局(生产者)包含每日天气数据。您手机上的天气应用(消费者)通过 WeatherKit REST API 来传呼,或者更具体地说,咨询这个系统,然后通过天气应用程序的用户界面呈现数据。虽然这只是数百万用户使用的热门应用的简单示例,但值得注意的是,机器对机器通信代表了由 API 提供支持的现代数字体验流量份额不断增加。

图片3

API 提供了诸多可转化为商业价值的技术优势:

技术优势 商业价值
抽象化 Web 应用的底层实施。 企业可以快速部署移动应用和基于微服务的架构。
指定类型,以便开发人员可以通过工具执行 API 消费者。 领导者可以优化开发流程,缩短上市时间。
定义语义/行为,以模拟一致且可预测的信息交换。 合作伙伴可以开发第三方集成并从中盈利。

当涉及实施 API 时,有多个考量因素。具体而言,关乎于建模、版本控制和合同测试,这有助于解耦依赖性,并确保设计、构建和维护期间的互操作性。

考量因素 说明 优势
建模 表示和构建信息交换的语义或行为。 简化分布式架构管理。
版本控制 在整个 API 生命周期中,发布与维护治理策略。 最大化可用性和向后兼容性。
合同测试 定义消费者和生产者之间的交互和预期响应。 与第三方业务集成的确定性交互。

构建、管理和保护 API 的方法没有对错之分。事实上,当 API 开始激增时,有必要对 API 的特征和结构进行标准化,以便大规模进行使用。加入 OpenAPI 计划和由此产生的 OpenAPI 规范 (OAS)。Swagger 是实施 OpenAPI 规范的原始参考,大多数工具现已融合使用 OpenAPI上,其目前仍广泛运用。

事实上,API 可以使用各种标准、架构和规范进行构建。例如,RESTful 演示、gRPC 服务,以及连接至 GraphQL 架构。

实施 概述 优势 何时使用


表述性状态转移 (REST) 提供了轻量级的架构模型以描述统一接口,最常用的是使用 HTTP 作为底层传输协议。

REST 是迄今为止部署最广泛的基于 API 的架构实施。

Postman 2022 年 API 现状报告

  • REST 有一些非常基本的规则,进入门槛低,领域模型强,实施起来相对简单。
  • 作为分层系统,REST 接口背后的系统复杂性被抽象化。例如,消费者不知道他们正在与 Web 服务背后的数据库系统进行交互。
  • REST 对内容类型(包括 JSON 和 YAML)提供灵活支持。
  • 当OpenAPI 规范足以与消费者共享 API 的特征和结构时。
  • 需要根据 HTTP 标头动态确定缓存,因为默认情况下,生产者至消费者的请求无状态。
  • 为生产者提供的单一 API 扩展资源模型,或使用 API 网关在同一基本 URL 上提供多个 API。


GraphQL 是一种用于 API 的开源数据查询和操作语言,也是使用现有数据(由 Facebook 开发,现已是 Linux 基金会的一部分)完成这些查询的运行时。
  • 提供跨多个源查询的查询语言。
  • 允许客户端准确询问所需的字段,包括跨多个 API 的字段,从而减少首次加载时间。
  • 架构语言指定单个 API 中的类型以及 API 的组合方式,能够跨所有 API 提供单一版本,从而简化版本管理。
  • 作为对现有传统系统的互补技术,以抽象化复杂性。
  • API 消费者需要对各种互连服务进行统一访问、筛选和查询。
  • 借助移动设备,其受限于较小的屏幕和网络可用性。


gRPC是由 Linux 基金会管理的现代化、开源、高性能远程过程调用 (RPC) 框架。
  • 通过使用 HTTP/2、轻量级协议缓冲区、序列化有效负载和有状态实施,实现高性能和可靠性。
  • 可插拔支持负载均衡、跟踪、运行状况检查和身份验证。
  • 高接口功能和消息互操作性,为所有语言提供丰富的工具支持。
  • 对于分布式计算的“最后一英里”,将设备、移动应用和浏览器连接到后端微服务,以及对于通过移动到桌面/物联网交互的跨平台应用。
  • 对于内部容器流量(“东西向”)。
  • 具有需串流的外部接口(“南北向”),以及对于聊天、金融、新闻等串流应用。

通过 API 基础知识入门,我们将在随后的帖文中探索如何构建、管理和保护 API 架构,然后再通过为云重新构建传统应用平台实现全面融合。

图片4

了解更多?即刻下载电子书:

掌握 API 架构主动权 | O'Reilly 电子书