跳到主要内容
版本:2.13.2304

概览

当今计算机世界,人们早已习惯使用 API 在软件之间完成信息的交换,不论是你在手机上查看天气信息、查看微信朋友圈的动态、亦或是和 ChatGPT 交互,其实都是通过 API 来完成的。从定义上来说,API 是一组通信的约定,它规定了你(或者软件)如何与目标软件服务交互。

API 全生命周期管理

随着业务的增长,公司的 API 数量往往会越来越多,如果不对这些 API 进行管理的话,通常就会引来混乱,比如人员协作成本增高、服务稳定性以及安全性受到挑战。因此,人们提出了所谓 API 全生命周期管理的概念,以便可以更好地管理 API。我们可以将一个 API 从设计开始,到最后下线完成使命这个过程分成不同的阶段。通常来说,我们会将 API 生命周期分为规划和设计、实现、管理三个大阶段。

规划和设计

作为工程师,我们总是强调在编码前先进行方案的设计。API 也不例外,我们需要根据业务明确一个 API 的功能目的,然后结合相关技术栈,将业务语言翻译成技术语言。 通常来说,API 规划和设计是围绕着文档进行的。 关于如何撰写一份合理的 API 文档,人们也开展过很多的研究,目前比较流行的是按照 OpenAPI Specification V3 进行 API 文档的设计。

实现

API 设计完毕后,工程师们就可以着手开发了。工程师可以选择自己擅长的、或者是组织要求的技术栈实现 API。并且在开发后为 API 进行测试,比如工程师可以为 API 添加端到端的测试、或者请求 QA 团队的测试。实现完毕后,工程师即可着手准备 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 的信息,包括 API 的接入地址、API 的描述、参数约束、使用示例等。这些详细信息能够有效地帮助到外部开发者去理解并使用 API;第二个问题是,作为 API 的“生产者”,我们往往不希望谁都可以来调用我们开发的 API,即我们希望对 API 进行有效的保护,因此外部的开发者应该仅在获得了有效的 API 凭证以后,才能真正使用 API。更重要的是,我们希望 API 的“消费”应当是尽可能自助的,从而减少沟通协作带来的成本。

为了优化 API “消费”这个环节,人们提出了开发者门户这个概念,借此来解决上述的问题。

开发者门户

开发者门户通常分为管理端和展示端两个站点。管理端的用户为 API “生产者”(下面称为管理员),展示端的用户为 API “消费者”(下面称为开发者)。

开发者门户管理端最核心的功能在于让管理员控制 API 的发布和下线,仅发布后的 API 在展示端站点可见, 当然,管理员也可以为发布的 API 添加一些策略,例如限制访问 QPS、要求鉴权等来保护发布的 API; 此外,管理员还可以在这里对来自展示端站点的请求进行审批,包括开发者账号注册、开发者希望订阅某个 API 等。

而展示端是为 API “消费者”准备的,在展示端可以看到所有由管理员发布后的 API(以及它们的细节信息), 并且向管理员申请 API 的订阅;开发者可以为已经订阅的 API 创建访问所需要的凭证信息,并通过查看 API 文档来了解如何集成。

一些开发者门户还会集成 API 调用分析,比如在管理端以开发者的视角展示过去一天某个 API 的调用量、延迟情况等,这些数据能够成为未来迭代和优化 API 的决策依据,帮助 API 变得更加完善。 随着 API 生态系统的完善,API 货币化这一概念也逐步被人们重视起来,而开发者门户则成了进行 API 货币化的良好工具,比如管理员可以为 API 创建多个订阅计划,按照不同的配额进行差异化收费,亦或是根据 API 调用次数来进行按需付费。

API7 开发者门户

API7 开发者门户是 AP7 Enterprise 产品的子功能,它允许用户将配置在 API7 Enterprise 之上的 API,发布到开发者门户上, 让对这些 API 有需要的外部开发者可以方便地订阅和使用 API。并且利用 API7 Enterprise 提供的鉴权、限流等能力,很好 地对 API 进行保护,保证 API 的安全性。

此外,API7 开发者门户还提供了外部开发者的管理功能,比如开发者账号的管理功能等。