作者张超,API7 Cloud 产品负责人,Apache APISIX PMC 成员。
原文链接
当今计算机世界,人们早已习惯应用 API 在软件之间实现信息的替换,不论是你在手机上查看天气信息、查看微信朋友圈的动静、亦或是和 ChatGPT 交互,其实都是通过 API 来实现的。从定义上来说,API 是一组通信的约定,它规定了你(或者软件)如何与目标软件服务交互。
API 全生命周期治理
随着业务的增长,公司的 API 数量往往会越来越多,如果不对这些 API 进行治理的话,通常就会带来凌乱,比方人员合作老本增高、服务稳定性以及安全性受到挑战。因而,人们提出了所谓 API 全生命周期治理的概念,以便能够更好地治理 API。咱们能够将一个 API 从设计开始,到最初下线完成使命这个过程分成不同的阶段。通常来说,咱们会将 API 生命周期分为布局和设计、实现、治理三个大阶段。
布局和设计
作为工程师,咱们总是强调在编码前先进行计划的设计。API 也不例外,咱们须要依据业务明确一个 API 的性能目标,而后联合相干技术栈,将业务语言翻译成技术语言。通常来说,API 布局和设计是围绕着文档进行的,以 RESTful API 为例,API 文档中应该包含如下信息:
- API 性能形容
- API 对应的 URL
- HTTP 申请办法
- 申请参数、申请体、申请头的形容(以及束缚)
- 可能的响应状态码和响应体的形容
对于如何撰写一份正当的 API 文档,人们也发展过很多的钻研,目前比拟风行的是依照 OpenAPI Specification V3 进行 API 文档的设计。
此外,在真实世界里,API 的布局和设计往往是多人合作的,出于这样的需要,市场上也诞生了很多专一于 API 布局和设计的平台,比方 Postman。这些工具容许用户以可视化的形式设计 API,同时能满足合作的需要(兴许是在它们的付费版本中),并且容许用户将 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 等。某些开发者门户产品容许管理员定制开发者端站点的款式,包含替换 Logo、批改标语等。
而开发者端是为 API“消费者”筹备的,在开发者端能够看到所有由管理员公布后的 API(以及它们的细节信息),并且向管理员申请 API 的订阅;开发者能够为曾经订阅的 API 创立拜访所须要的凭证信息,并通过查看 API 文档来理解如何集成。
一些开发者门户还会集成 API 调用剖析,比方在治理端以开发者的视角展现过来一天某个 API 的调用量、提早状况等,这些数据可能成为将来迭代和优化 API 的决策依据,帮忙 API 变得更加欠缺。
随着 API 生态系统的欠缺,API 货币化这一概念也逐渐被人们器重起来,而开发者门户则成了进行 API 货币化的良好工具,比方管理员能够为 API 创立多个订阅打算,依照不同的配额进行差异化免费,亦或是依据 API 调用次数来进行按需付费。
行将推出的 API7 DevPortal
API7.ai 致力于为用户提供最好的 API 治理服务,为此,咱们正在踊跃筹备一款开发者门户产品,咱们称之为 API7 DevPortal。这款开发者门户产品将和 API7 Enterprise(企业级 API 网关产品,基于 Apache APISIX 构建)联合应用,并提供 API 订阅和开发者注册审批的性能。咱们的客户能够轻松地将曾经通过网关代理的 API 公布到开发者门户,进而让用户的开发者们在开发者端理解到 API 的详细信息。
将来,API7 DevPortal 将在两方面进行深刻迭代,第一是 和客户的审批流买通 ,局部客户公司有对立的审批平台,用来治理各类审批操作,咱们心愿在能够在不扭转客户原有审批习惯的状况下让客户应用 API7 DevPortal;第二是 反对 API 货币化,帮忙咱们的客户为不同的开发者提供不同层级的订阅服务,并且反对免费。咱们将在不久后把 API7 DevPortal 推向市场,如果你对这款产品感兴趣的话,请点击这里分割咱们。
总结
开发者门户在治理 API 生产的环节上起到了要害的作用,它帮忙“API 生产者们”无效地解决了 API 的集成问题,且没有平安等方面的就义,甚至可能帮忙“API 生产者们”进行变现。在 API 大行其道的明天,兴许是时候思考在你的团队里应用开发者门户了。
对于 API7.ai 与 APISIX
API7.ai 是一家提供 API 解决和剖析的开源根底软件公司,于 2019 年开源了新一代云原生 API 网关 — APISIX 并捐献给 Apache 软件基金会。尔后,API7.ai 始终踊跃投入反对 Apache APISIX 的开发、保护和社区经营。与千万贡献者、使用者、支持者一起做出世界级的开源我的项目,是 API7.ai 致力的指标。