掌握API架构:API基础知识

F5生态系统 | 2022年12月05日


应用程序编程接口(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

概述

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

REST是目前应用最广泛的API架构实现方式。

《Postman 2022 年 API 现状报告》

优势

  • REST仅有一些非常基本的规则,入门门槛低,并具备强大的领域模型,因此实现起来相对简单。
  • REST采用分层系统架构,对接口背后系统的复杂性进行了抽象。例如,使用者并不知道自己实际上是在与Web服务背后的数据库系统交互。
  • REST可灵活支持多种内容类型(包括JSON和YAML)。

适用场景

  • 当OpenAPI规范足以向使用者说明API的形式和结构时。
  • 当需要根据HTTP标头动态确定缓存时,因为从生产者到消费者的请求默认是无状态的。
  • 使用API网关扩展生产者提供的单个API的资源模型,或在同一基础URL上提供多个API时。
GraphQL

GraphQL是一种面向API的开源数据查询和操作语言,也是一种利用现有数据执行这些查询的运行时(由Facebook开发,现已成为Linux Foundation的一部分)。

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

gRPC是由Linux基金会管理的现代化开源高性能远程过程调用(RPC)框架。

  • 通过使用HTTP/2、轻量级协议缓冲区、序列化有效负载和有状态实现,提供出色的性能和可靠性。
  • 以可插拔方式支持负载均衡、跟踪、运行状况检查和身份验证。
  • 高度的接口功能和消息互操作性,并为所有语言提供丰富的工具支持。
  • 适用于分布式计算的最后一公里,将设备、移动应用和浏览器连接到后端微服务;也适用于支持移动端与桌面端或IoT交互的跨平台应用。
  • 适用于容器间流量(“东西向”)。
  • 适用于需要流式传输的外部接口(“南北向”),以及聊天、金融、新闻等流式应用。

了解这些API基础知识后,我们将在后续文章中探讨如何构建、管理和保护API架构,最后通过将旧版应用迁移到云平台,把这些内容融会贯通。

App Protect

想要抢占先机?立即下载电子书:

精通API架构 | O'Reilly电子书


分享
标签: 2022

关于作者

Byron McNaught
Byron McNaught高级解决方案营销经理 | F5

Byron McNaught 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。