Azure API 管理的工作原理

已完成

接下来,我们将从三个使用方来讨论 Azure API 管理的工作原理。 这部分知识将帮助你继续评估 Azure API 管理是否是用于管理组织 API 的合适解决方案。

在本单元中,你将了解 Azure API 管理面向以下各类用户的工作原理:

  • API 使用者
  • API 提供商
  • 应用开发人员

Azure API 管理面向 API 使用者的工作原理

API 使用者是向 API 请求数据的实体。 例如,以下实体中的任何一个都可以是 API 使用者:

  • 移动应用
  • Web 应用
  • IoT 设备

对于使用者,关键 Azure API 管理组件是网关。 所有使用者 API 调用会首先路由到网关终结点。 API 使用者只会直接与网关交互,而不会与实际 API 部署实例交互。

从使用者的角度看,网关执行许多任务,但以下是最重要的任务:

  • 身份验证。 网关通过验证使用者的订阅密钥、JWT 令牌和其他凭据来监视对 API 的访问。
  • 安全性。 网关通过强制实施预定义的速率限制和使用者使用配额,或根据 API 的架构验证请求和响应,从而防止 API 误用。
  • 转换。 网关会根据需要转换 API 请求或响应。 例如,如果后端服务使用 XML 数据进行响应,则可以将 XML 自动转换为 JSON 来实现 API 的现代化,如下图所示。
  • 路由。 对 API 请求进行身份验证、验证和转换后,网关会将调用路由到在其中部署了 API 的后端服务。
  • 性能。 网关可以在缓存中存储后端 API 响应。 如果后端响应在一段时间内是静态的,则从缓存中提供后续响应可缩短使用者的响应时间,并减少后端服务器上的负载。

移动应用使用 API 请求天气预报。Azure API 管理网关将调用路由到后端服务器,然后将服务器的 XML 响应转换为 JSON,再将其返回到移动应用。

Azure API 管理面向 API 提供商的工作原理

如果你是 API 提供商,在发布 API 后仍需要进行大量工作。 这项工作包括:

  • 设置 API 策略
  • 管理 API 使用者
  • 管理 API 修订和版本
  • 监视和分析 API

可以使用 Azure 门户中 Azure API 管理的管理界面来执行所有这些任务以及更多任务。 或者,使用 Azure CLI 或 Azure PowerShell 等工具。 管理界面除了可用于设置 API 策略(在上一单元中所学的内容),还能够执行以下任务:

  • 定义和导入 API 规范。 导入 OpenAPI 规范、REST API、简单对象访问协议 (SOAP) API(可选择转换为 REST)、WebSocket API 或 GraphQL API。 也可以通过导入以下 Azure 服务的实例来创建 API:Web 应用、容器应用、函数应用、逻辑应用和 Service Fabric。 还可以创建一个空白 API 并对其进行手动定义。
  • 管理用户和组。
    • 用户是开发者帐户。 它是 API 使用者的帐户。 可手动添加用户,或邀请用户创建帐户,但大多数用户都使用开发人员门户创建自己的帐户。
    • 组是相关联用户的集合。 可将组与特定 API 产品关联,然后该组中的每个用户都可以在开发人员门户上访问该产品。
  • 将 API 打包到产品中。 在 Azure API 管理中,产品是一组相关联的 API。 通过将多个 API 打包为一个产品,就可以仅配置产品,而不用单独配置所有 API。 例如,设置速率限制和其他策略、定义使用条款、添加组等。 此配置会应用于产品中所有 API。 发布产品后,使用者可订阅该产品并通过单个订阅密钥来使用其 API。
  • 管理 API 修订和版本。 在 API 开发人员团队需要对 API 进行更改时,可使用修订和版本以安全且可控的方式公开更改,这样不会对使用者造成不利影响:
    • 修订是针对 API 相对较小或非中断性的变更。 开发团队可以将修订与生产 API 分开进行编码和测试,如下图所示。 然后,在修订可供使用者使用时,使用 Azure API 管理的管理界面将更新后的 API 设置为当前的修订。
    • 版本是针对 API 相对重大或中断性的变更。 借助 Azure API 管理,可同时向开发人员提供 API 的多个版本。 它还提供多个版本控制方案,其中包括基于路径、基于标头和基于查询字符串的版本控制。
  • 监视和分析 API。 管理界面包含内置的监视工具,用于实时跟踪和查看 API 流量,还提供分析,可获得有关使用者如何使用已发布 API 的见解。 Azure API 管理还支持多个 Azure 工具,用于监视 API 和运行分析工作负载。 Azure API 管理支持的 Azure 服务包括 Azure Monitor 日志、Application Insights 和事件中心。

修订在 Azure API 管理中工作原理的图示。来自使用者的 API 请求将路由到 API 的当前修订,而来自内部开发团队的 API 请求将路由到 API 修订。

Azure API 管理面向应用开发人员的工作原理

除了消耗层级,所有 Azure API 管理实例都包含一个开发人员门户,可在其中向潜在的和现有的 API 使用者显示 API。 开发人员门户附带了一个默认界面,可自定义来符合组织的品牌和要求。

应用开发人员使用开发人员帐户登录到开发人员门户(也接受尚未拥有帐户的来宾用户登录)。 然后,会向开发人员提供一个 Web 界面,供开发人员通过以下方式与 API 交互:

  • 访问 API 文档。 开发人员可查看为每个 API 提供的文档。
  • 测试 API。 开发人员门户提供一个交互式控制台,开发人员能够用来快速、安全地测试 API。 开发人员可以选择一个 API 操作,添加参数值,然后提交调用来确定 API 返回的响应。
  • 查看 API 代码示例。 开发人员门户提供采用多种编程语言(包括 C#、Java、JavaScript、PHP 和 Python)的 API 调用示例。
  • 订阅 API。 在使用者决定使用你的 API 时,用户可借助开发人员门户创建对 API 的订阅,并在调用 API 时获得要使用的订阅密钥。
  • 运行分析。 开发人员门户提供针对开发人员 API 使用情况的分析。