浏览 669
原文链接:概念回顾:API 和 API 互联
转载来源:NGINX 开源社区
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
随着微服务架构的兴起,API 的数量急剧增加,由此也产生了一系列的挑战与解决方案。阅读本文,了解与 API 相关的基础概念以及 API 的使用现状。
应用编程接口(简称 API)是一组定义、规则和协议,支持用户(人或软件)和信息(在线和 Web 应用提供的数据资源)两个实体之间的通信。
如今,API 构成了现代应用的基本框架,帮助改善用户体验并增强业务模式。有时,API 甚至自身可以作为一种业务模式。
API 是应用的“门面”,展示了应用执行的功能及其可提供的信息,并定义了正确的请求格式。当开发人员为一款应用创建 API 并将其暴露后,它允许其他应用与该应用通信。
在许多情况下,API 可帮助开发人员节省宝贵时间,因为它们让常用功能可以直接拿来使用。开发人员可通过调用现有应用的 API,将所需功能集成到自己的应用中,而不必浪费时间重新开发这些功能。
每个 API 的设计、部署和运行方式都取决于其架构风格或协议。
API 架构或架构风格是指 API 的顶层设计,包括 API 的结构和组织方式及其请求/响应格式。API 协议不仅指定了格式,同时还描述了确切的消息。
常见的 API 架构和协议包括:
API 是现代软件的关键组成部分,如今各企业都会根据需求构建或使用许多不同类型的 API。
目前企业中最常见的四种 API 是公共 API、私有 API、合作伙伴 API 和第三方 API。
公共 API 可供企业外部的用户访问(无论是付费还是免费),助力您与第三方开发人员建立合作伙伴关系并扩展整个业务生态系统。
由于公共 API 可被第三方开发人员用来构建新产品,因此有助于推动创新,是帮助建立新合作伙伴关系的重要工具。
私有 API 仅可供企业内部的团队访问,不仅能够帮助您解锁数据并促进内部协作,而且还可为企业面向公众的应用(例如您的网站)提供无形的支持。
由于私有 API 仅供内部用户使用,因此企业可以在构建时充分考虑优化问题。私有 API 还提升了现代应用的可组合性,支持企业根据当前的需求进行调整。开发人员可以在构建微服务时轻松集成私有 API,从而减少团队间的重复工作。
合作伙伴 API 用于直接集成业务合作伙伴解决方案(例如,当一家航空公司与一家连锁酒店合作时,您可以机票和酒店同订)。合作伙伴 API 不公开提供 — 只有满足两家企业的身份验证 (AuthN) 和授权 (AuthZ) 要求的部分开发人员才可对其进行访问。
互操作性加强了与合作伙伴 API 的关系,因为它们打破了孤岛,支持不同企业相互通信。
第三方 API 可被企业用于访问应用和服务中缺少的数据或功能。这些 API 在第三方服务器上运行,通常提供广泛需要的服务(例如许多电子商务网站使用的 Stripe 支付处理 API)。这些 API 可供企业付费或免费使用,具体视 API 而定。
由于第三方 API 均由其他开发人员或企业构建,因此可显著节省成本。此外,第三方 API 是企业加快应用开发的一个重要途径,因为开发人员可以立即使用所需功能,无需自行编写。
几乎任何现代编程语言都可以用来编码 API。在编码 API 时,许多开发人员可能会选择使用一个框架。框架提供了代码库等构建块及其他必要实用程序,有助于更快速、更轻松地使用该语言构建应用。
每种编程语言一般都有一个或多个开发人员常用的框架。下表列出了几个框架选项(其中许多为开源框架)。
具体选择哪种语言和框架通常取决于项目需求或开发人员的个人偏好。
API 是现代软件开发的一个基本组成部分,其示例不胜枚举。此处,我们只举数例。
三个 API 示例:
企业需要根据其业务目标来制定现代 API 策略,后者为企业如何设计、开发、管理、治理和保护其 API 设定了方案。
根据 Gartner《适用于软件工程领导者的五大 API 经验教训》,现有五个最佳实践可帮助您确保实施强大的 API 策略:
无论您选择哪种类型的 API 架构或者正在编写哪种类型的 API,必须从一开始就考虑 API 安全防护,而非事后弥补。
“API 互联”是指在云原生环境中使用模块化、可复用的 API 来连接数据和应用。与侧重于管理单个 API 生命周期的 API 管理不同,API 互联涉及松散耦合的微服务环境(其中许多 API 相互通信),并支持在这些架构中大规模保护和治理 API。
虽然 API 曾仅仅被视为开发人员的工具,但现已成为战略业务资产,不仅有助于创收,而且还支持企业敏捷性。随着各企业不断创新并纷纷采用 API,这给可视化、安全防护和治理提出了新的挑战。企业需要使用新型 API 互联解决方案,以完善传统和微服务架构,与 DevOps 实践保持一致,并支持高性能 API。
过去,全生命周期 API 管理解决方案主要用于管理内部或外部 API 的南北向流量(客户端到后端)。现在,随着云原生基础架构不断生成更多的东西向流量(在企业应用基础架构内的微服务之间),API 的类型也有所增加。
目前,大多数企业使用四种类型的 API:
API 互联的其他关键要素包括 API 网关(反向代理或 Ingress controller)和 API 开发人员门户。API 网关接受来自客户端的 API 请求,将其定向到相应的 service,并将请求结果融入用户的同步体验中。开发人员门户是一个在线平台,您可以在此发布有助于 API 消费者快速入门的资源,例如外部 API 的目录、完备的文档及示例代码。它还允许第三方开发人员注册其应用,并获得 API 访问凭证。
如今,API 和微服务都将被部署在多个环境中 — 公有云、私有云、本地和边缘。随着微服务日益成为高流量公司扩展应用的关键工具,内部 API 流量也大幅增加。
在复杂的多云环境中,API 端点(endpoint)激增,因此需要采用一种新的 API 管理、治理和安全防护方法。这些分布式环境需要低接触的自动化方法来为开发人员赋能,并支持平台运维团队跨不同的业务线设置安全防护和资源防护。
确保多云架构的可靠性和安全防护给平台运维团队带来了严峻的挑战。他们需要全面了解应用和 API 流量,并能够跨不同环境应用一致的安全防护和合规策略。平台原生工具的操作方式各不相同,提供了不同程度的可视性和控制力。最终,平台运维团队需要使用其他模型来跨分布式团队和环境创建并应用治理规则。
API 治理有两种常见模型 — 集中式和分散式。但在现代 API 策略中,尤其是在 API 优先模型中,“自适应治理”的新理念可为 API 开发人员赋能,同时为平台运维团队提供可靠性和安全防护控制能力。
如欲了解更多信息,请阅读我们的博文《自适应治理可为 API 开发人员提供其所需的自主权》。
云原生环境是松散耦合的系统,通常使用容器、service mesh(服务网格)和微服务构建而成。上述资源通过 API 相互通信,并通常通过声明性 API 进行自主管理。这些技术能够构建容错性好、易于管理和便于观察的系统。
API 互联强调使用云原生技术,特别是使用 API 优先方法来管理基础架构和 API 生命周期。 这对于使用持续集成/持续交付 (CI/CD) 实践实现大规模自动化运行尤为重要。CI/CD 可通过自动化功能帮助您在 API 和应用的整个生命周期(编写、交付和更新)对其进行高效管理。它还支持在早期集成并嵌入安全策略,然后将其应用于未来 API,助力实现“安全左移”,让安全防护融入整个开发流程,直至投入生产环境。
“API 主导的互联”是实现数字化转型和企业整体 API 策略的特定架构方法。它使用分层的方法按功能对企业的 API 进行分类:
无论您使用何种架构模式对 API 进行分类,API 互联都是一种在云原生环境中治理和操作 API 的综合方法。
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
按点赞数排序
按时间排序