导入和发布 API
要通过 API 网关提供 API,需要导入和发布 API。
在鞋业公司示例中,NorthWind Shoes 希望使选定的合作伙伴能够查询库存和库存级别。
现在介绍如何将 API 导入 Azure API 管理,以及如何为客户端提供 API。
API(应用程序编程接口)
API 是组织用于向潜在开发人员或合作伙伴公开特定数据的标准化方法。 例如,在上一练习中,创建了用于共享产品和库存信息的 API。
要提供 API,应先将 API 导入 API 管理。 然后,可以:
- 使用 API 网关中的可视化工具来测试 API。
- 使用策略管理对 API 的访问权限。
API 框架
以下是各种 API 框架和标准。 API 管理为导入 API 提供多个选项。 包括下表中的选项:
类型 | 详细信息 |
---|---|
HTTP | 可导入具有空白 API 定义的 HTTP API。 然后手动指定所有所需参数。 |
WebSocket | 设置到后端 WebSocket 服务的直通。 |
GraphQL | 设置到后端 GraphQL 服务的直通,或导入 GraphQL 架构并使用自定义字段解析程序创建综合 GraphQL API。 |
OpenAPI | OpenAPI 是一种规范,记录 RESTful API 的所有终结点和操作,以及所有输入和输出参数。 OpenAPI 最初称为 Swagger。 |
WADL | Web 应用程序描述语言是 Web 服务(基于 HTTP)的 XML 描述。 相比 Web 服务描述语言,它是一种更简单的格式,且量级更轻。 |
WSDL | Web 服务描述语言是任何网络服务(而不只是 HTTP)的 XML 描述。 |
还可以从多个后端 Azure 资源导入 API。 选项包括下表中的选项。
类型 | 详细信息 |
---|---|
Azure OpenAI 服务 | API 提供对 OpenAI 语言模型的访问权限,以执行包括内容生成、摘要、语义搜索等在内的任务。 |
逻辑应用 | 逻辑应用用于协调和自动执行工作流以及与各种数据源的集成。 |
应用服务 | API 托管在 Azure 的应用服务中。 |
函数应用 | 可通过触发器调用的无服务器代码。 |
容器应用 | 微服务的无服务器容器。 |
导入 API
可通过以下几种方法将 API 导入 Azure API 管理。
使用 Azure 门户,选择“API”,然后选择“+ 添加 API”。 首先选择想要导入的 API 类型。
然后以 URL 或文件形式提供 API 规范的链接,并提供 API 的名称。 以下是 OpenAPI 导入的示例。
Azure 门户并非导入和配置大量 API 的最有效工具。 纵向扩展 API 管理时,需要其他工具,例如 Azure CLI、Azure 资源管理器或 Bicep 模板或 Azure PowerShell。 例如,你可以使用 Azure PowerShell cmdlet 来部署 API 网关、定义和配置产品、导入 API 以及管理用户和订阅。
可视化
可使用 API 网关直观呈现通过已导入的 API 处理数据的方式。 可与数据集交互,并通过 API 传递参数。
如果是管理员,可在 Azure 门户中可视化 API。
策略
策略提供通过配置更改 API 行为的强大功能。 策略作为一组语句存在,在请求或 API 响应时按顺序执行。
常用配置包括:
- 从 XML 到 JSON 的转换
- 限制传入调用数量的调用速率限制。
- 设置入站和出站标头。
使用 Azure 门户将各种策略应用到 API。 可在“设计”选项卡中查看策略。
还可使用“设计”选项卡添加新策略。
产品
产品是一系列 API。 可以将 API 分配给多个产品。 例如,你可能希望一个产品 (NorthWindShoesPartners) 为合作伙伴公开两个 API:
产品 | NorthWindShoesPartners |
---|---|
API 1 | 库存 |
API 2 | 规划 |
对于供应商,你可能只希望公开一个 API:
产品 | NorthWindShoesSuppliers |
---|---|
API 1 | 库存 |
API 2 |
分配策略,以便产品具有不同访问规则、使用配额和使用条款。 因此,如果希望合作伙伴和供应商对库存 API 具有不同访问权限,可将该 API 分配给两个不同产品。
使用 Azure 门户将 API 与产品关联。
在多个定价层中均提供两种默认产品:“初学者”和“无限”。 “无限”产品专为生产 API 管理而设计,因为它对附加的 API 数量没有限制。 可以根据需要创建任意数量的新产品。 “初学者”产品的限制为 5 个 API 调用/分钟,以及最多 100 个 API 调用/周。