适用于:所有 API 管理层级
本文介绍如何将 Azure 容器应用作为 API 导入 Azure API 管理,并使用 Azure 门户测试导入的 API。
注意
目前无法在工作区中使用此功能。
在本文中,学习如何:
- 导入公开 Web API 的容器应用
- 在 Azure 门户中测试 API
使用 API 管理公开容器应用
借助 Azure 容器应用,无需管理复杂的基础结构即可部署容器化应用。 API 开发人员可以使用首选编程语言或框架编写代码,构建完全支持分布式应用程序运行时(Dapr)的微服务,并根据 HTTP 流量或其他事件进行缩放。
通过使用 API 管理公开容器应用中托管的 Web API,可以获得以下优势:
- 将向 API 消费者公开的前端的管理和保护与后端 Web API 的管理和监控分离。
- 在与其他 API 相同的环境中,管理作为容器应用托管的 Web API。
- 应用 策略 以更改 API 行为,例如调用速率限制。
- 将 API 使用者定向到可自定义的 API 管理 开发人员门户 ,以便他们可以发现并了解 API、请求访问权限和试用 API。
有关详细信息,请查看关于 API 管理。
OpenAPI 规范与通配符操作
API 管理支持导入提供 OpenAPI 规范(Swagger 定义)的容器应用。 不需要 OpenAPI 规范,但我们建议你提供一个。 API 管理可以导入单个作,这样就可以单独验证、管理、保护和更新每个作的配置。
如果容器应用公开 OpenAPI 规范,API 管理将创建直接映射到定义的 API 操作。 API 管理将在多个位置查找 OpenAPI 规范:
- 容器应用配置
/openapi.json
/openapi.yml
/swagger/v1/swagger.json
如果未提供 OpenAPI 规范,API 管理会为常见的 HTTP 谓词(GET 和 PUT 等)生成通配符操作。 你仍可利用相同的 API 管理功能,但定义操作的详细信息级别不同。
在任一情况下,您都可以在导入 API 后 编辑 或 添加 操作。
示例
后端容器应用程序可能支持两个 GET 操作:
https://<app-service>.azurewebsites.net/customer/{id}
https://<app-service>.azurewebsites.net/customers
将容器应用以类似 https://<api>.azure-api.net/store
的路径导入到您的 API 管理服务中。 下表显示导入 API 管理的操作(无论是否具有 OpenAPI 规范):
类型 | 导入的操作 | 示例请求 |
---|---|---|
OpenAPI 规范 | GET /customer/{id} GET /customers |
GET https://<api>.azure-api.net/store/customer/1 GET https://<api>.azure-api.net/store/customers |
通配符 | GET /* |
GET https://contosoapi.azure-api.net/store/customer/1 GET https://<api>.azure-api.net/store/customers |
通过通配符操作,可对后端服务发出与 OpenAPI 规范中的操作相同的请求。 不过,OpenAPI 指定的操作可在 API 管理中单独管理。
先决条件
- 完成创建 Azure API 管理实例快速入门。
- 请确保有一个容器应用在订阅中公开 Web API。 有关详细信息,请参阅容器应用文档。
导入和发布后端 API
在 Azure 门户中导航到 API 管理服务,并在左窗格中选择 API>API 。
在 “从 Azure 资源创建”下,选择 “容器应用”
选择 “浏览” 以查看订阅中的容器应用列表。
选择容器应用。 如果 OpenAPI 定义与所选容器应用相关联,API 管理会提取它并导入它。 如果未找到 OpenAPI 定义,API 管理会为常见的 HTTP 谓词生成通配符操作来公开 API。
添加 API URL 后缀。 后缀是标识 API 管理实例中的 API 的名称。 它必须在 API 管理实例中是唯一的。
将 API 与产品相关联。 选择 “完整 ”,然后在 “产品”中选择产品。 在这种情况下,将使用 无限制 产品。 如果希望发布 API 并可供开发人员使用,则需要将其添加到产品。
注意
产品 是一个或多个 API 的关联。 可包含许多 API,并通过开发人员门户将其提供给开发人员。 开发人员必须先订阅产品才能访问 API。 订阅时,他们获取适用于该产品中的任何 API 的订阅密钥。 如果你创建了 API 管理实例,那么你是管理员,并且默认订阅了每个产品。
在某些定价层中,创建 API 管理实例时附带两个示例产品:
- 入门
- 不受限制
输入其他 API 设置。 创建 API 或稍后在 “设置” 选项卡上对其进行配置时,可以设置这些值。导入 和发布第一个 API 教程中介绍了这些设置。
选择“创建” 。
在 Azure 门户中测试新的 API
可直接从 Azure 门户调用操作。 此方法是查看和测试 API 的操作的便捷方式。 还可以在 开发人员门户中 或使用自己的 REST 客户端工具测试 API。
若要在 Azure 门户中测试 API,请执行以下作:
选择上一步中创建的 API。
选择“测试”选项卡。
选择操作。
该页将显示查询参数的字段和标头的字段。 其中一个标头是
Ocp-Apim-Subscription-Key
。 此标头适用于与 API 关联的产品的订阅密钥。 如果创建了 API 管理实例,则你是管理员,因此会自动填充密钥。选择Send。
如果测试成功,后端会响应并显示“200 正常”和一些数据。
在 Azure 门户中测试通配符操作
生成通配符操作后,操作可能不会直接映射到后端 API。 例如,导入 API 管理中的通配符 GET 操作默认使用路径 /
。 不过,后端 API 可能支持使用以下路径的 GET 操作:
/api/TodoItems
若要测试 /api/TodoItems
路径,请执行以下操作:
选择你创建的 API,然后选择该操作。
选择“测试”选项卡。
在“模板参数”中,更新通配符 (*) 名称旁边的值。 例如,输入
api/TodoItems
。 此值追加到用于通配符操作的路径/
。选择Send。
追加其他 API
可以通过不同服务公开的 API 撰写 API,包括:
- OpenAPI 规范
- SOAP API
- GraphQL API
- Azure 应用服务中托管的 Web 应用
- Azure Functions(Azure 功能服务)
- Azure 逻辑应用
- Azure Service Fabric
注意
导入一个 API 时,操作会追加到当前 API。
将 API 追加到现有 API:
在 Azure 门户中转到你的 Azure API 管理实例:
在“概述”页上选择“API”,或在左侧菜单中选择“API”“API”>。
选择要将另一个 API 追加到的 API 旁边的省略号 (...)。
从下拉菜单中选择“导入”:
选择要从中导入 API 的服务。