应用程序编程接口(API)正备受关注。

API并非新生事物,但近年来,受新冠疫情期间数字化转型加速、软件集成不断增强,以及为将传统应用迁移至云平台而开展的重构工作等因素影响,API无序扩张持续加剧,影响着组织的管理、安全,甚至影响其为在现代数字经济中取得成功而做出的架构选择。
从本质上讲,API可以代表机器的崛起。不过幸运的是,人类仍然掌控着API的构建、管理和安全(至少目前如此)。

从根本上说,用“API术语”来讲,使用方通常会通过由各种标准、架构和规范组成的统一接口,向提供方发送查询或请求。
例如,美国国家气象局(生产者)提供每日天气数据。手机上的天气应用(消费者)通过WeatherKit REST API调用(更准确地说是查询)该系统,然后通过天气应用的用户界面呈现数据。虽然这只是一个数百万用户使用的热门应用的简单示例,但值得注意的是,在现代数字体验的流量中,机器间通信占据了很大比例,而这由API提供支持。

API可带来多项技术优势,并转化为业务价值:
技术优势 | 业务价值 |
对Web应用的底层实现进行抽象。 | 组织可以快速部署移动应用和基于微服务的架构。 |
指定类型,以便开发人员通过工具实现API使用方。 | 领导者可以优化开发流程,帮助缩短产品上市时间。 |
定义语义和行为,以构建一致且可预测的信息交换模型。 | 合作伙伴可以开发第三方集成并从中获利。 |
在 API 的实现方面,需要考虑多项因素,尤其是建模、版本控制和契约测试。这些因素有助于在设计、构建和维护期间解除依赖关系并确保互操作性。
注意事项 | 说明 | 优势 |
建模 | 用于表示信息交换并构建其结构的语义或行为。 | 简化分布式架构管理。 |
版本控制 | 贯穿API生命周期的发布和维护治理策略。 | 尽可能提高易用性和向后兼容性。 |
契约测试 | 定义使用方与提供方之间的交互及预期响应。 | 与第三方业务集成进行确定性交互。 |
构建、管理和保护API并没有绝对正确或错误的方法。事实上,随着API开始大量涌现,为了实现规模化使用,有必要对API的形式和结构进行标准化。由此诞生了OpenAPI计划及其制定的OpenAPI规范(OAS)。Swagger是OpenAPI规范最初的参考实现。如今,大多数工具已统一采用OpenAPI,而它依然风采不减(哈!)
事实上,可以使用多种标准、模式和规范来构建API。例如,采用RESTful风格的呈现方式、gRPC服务,以及与GraphQL模式的连接。
实施

概述
表述性状态转移(REST)提供了一种用于描述统一接口的轻量级架构模型,通常以HTTP作为底层传输协议。
REST是目前应用最广泛的API架构实现方式。
优势
- REST仅有一些非常基本的规则,入门门槛低,并具备强大的领域模型,因此实现起来相对简单。
- REST采用分层系统架构,对接口背后系统的复杂性进行了抽象。例如,使用者并不知道自己实际上是在与Web服务背后的数据库系统交互。
- REST可灵活支持多种内容类型(包括JSON和YAML)。
适用场景
- 当OpenAPI规范足以向使用者说明API的形式和结构时。
- 当需要根据HTTP标头动态确定缓存时,因为从生产者到消费者的请求默认是无状态的。
- 使用API网关扩展生产者提供的单个API的资源模型,或在同一基础URL上提供多个API时。

GraphQL是一种面向API的开源数据查询和操作语言,也是一种利用现有数据执行这些查询的运行时(由Facebook开发,现已成为Linux Foundation的一部分)。
- 提供一种可跨多个数据源进行查询的查询语言。
- 允许客户端精确请求所需字段,包括跨多个API的字段,从而缩短首次加载时间。
- 模式语言用于指定各个API中的类型以及API的组合方式,从而能够为所有API提供统一版本,简化版本管理。
- 作为部署在现有遗留系统之上的补充技术,用于抽象复杂性。
- 当API使用者需要对大量互联服务进行统一访问、筛选和查询时。
- 适用于受屏幕尺寸较小和网络可用性限制的移动设备。

gRPC是由Linux基金会管理的现代化开源高性能远程过程调用(RPC)框架。
- 通过使用HTTP/2、轻量级协议缓冲区、序列化有效负载和有状态实现,提供出色的性能和可靠性。
- 以可插拔方式支持负载均衡、跟踪、运行状况检查和身份验证。
- 高度的接口功能和消息互操作性,并为所有语言提供丰富的工具支持。
- 适用于分布式计算的最后一公里,将设备、移动应用和浏览器连接到后端微服务;也适用于支持移动端与桌面端或IoT交互的跨平台应用。
- 适用于容器间流量(“东西向”)。
- 适用于需要流式传输的外部接口(“南北向”),以及聊天、金融、新闻等流式应用。
了解这些API基础知识后,我们将在后续文章中探讨如何构建、管理和保护API架构,最后通过将旧版应用迁移到云平台,把这些内容融会贯通。

想要抢占先机?立即下载电子书:
关于作者

相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。