适用于:所有 API 管理层级
本教程介绍如何配置常用策略来保护或转换 API。 策略是针对 API 请求或响应按顺序运行的一系列语句,它会修改 API 的行为。
例如,你可能希望设置自定义响应标头。 或者,配置速率限制策略来保护后端 API,因此开发人员不会过度使用 API。 这些示例是 API 管理策略的简单简介。 有关更多策略选项,请参阅 API 管理策略。
注意事项
API 管理默认配置全局 forward-request 策略。 网关需有 forward-request 策略才能完成对后端服务发出的请求。
在本教程中,你将了解如何执行以下操作:
- 转换 API 以设置自定义响应标头
- 通过添加速率限制策略或流量控制来保护 API
- 测试转换
先决条件
- 了解 Azure API 管理术语。
- 了解 Azure API 管理中策略的概念。
- 请完成以下快速入门:创建一个 Azure API 管理实例。 对于本教程,我们建议使用一个经典层或 v2 层,例如开发人员层或基本 v2 层。 消耗层不一定支持本教程中使用的所有策略。
- 完成以下教程:导入和发布第一个 API。
转到你的 API 管理实例
在 Azure 门户中,搜索并选择 API 管理服务:
在 API 管理服务 页上,选择 API 管理实例:
测试原始响应
若要查看原始响应,请执行以下操作:
- 在 API 管理服务实例中,选择 API>API。
- 在 API 列表中,选择 Swagger Petstore。
- 在屏幕顶部,选择“ 测试”。
- 选择操作 GET Finds Pets by status,并可选择状态查询参数的其他值。
- 选择发送。
原始 API 响应应类似于以下响应:
转换 API 以添加自定义响应标头
API Management 包括多个转换策略,可用于修改请求或响应有效负载、标头或状态代码。 在此示例中,你在 API 响应中设置自定义响应标头。
设置转换策略
本部分介绍如何使用 set-header 策略来配置自定义响应标头。 在这里,你将使用基于表单的策略编辑器来简化策略配置。
选择Swagger Petstore>设计>全部操作。
在“出站处理”部分,选择“+ 添加策略”。
在“添加出站策略”窗口中,选择“设置标头”。
要配置设置标头策略,请执行以下操作:
- 在“名称”一栏中,输入“自定义”。
- 在“值”下,选择“+ 添加值”。 输入 我的自定义值。
- 选择“保存”。
配置后,“set-header”策略元素会在“出站处理”部分出现。
通过添加速率限制策略来保护 API
本部分介绍如何通过配置速率限制向后端 API 添加保护,以便开发人员不会过度使用 API。 此示例演示如何使用代码编辑器来配置 rate-limit-by-key 策略。 在此示例中,限制设置为每 15 秒调用 3 次。 15 秒后,开发人员可以重试调用该 API。
注意事项
消费层不支持此策略。
选择Swagger Petstore>设计>全部操作。
在“入站处理”部分中,选择代码编辑器 (</>) 图标。
将光标置于一个空行的
<inbound>元素内。 然后在屏幕右上角选择“显示代码片段”。
在右侧窗口中的“访问限制策略”下,选择“限制每个键的调用速率”。
<rate-limit-by-key />元素将添加到光标处。
将
<rate-limit-by-key />元素中的<inbound>代码修改为以下代码。 再选择“保存”。<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
测试转换
此时如果查看代码编辑器中的代码,则会发现策略代码应如下所示:
<policies>
<inbound>
<rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<outbound>
<set-header name="Custom" exists-action="override">
<value>"My custom value"</value>
</set-header>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
本部分的余下内容介绍如何测试本文中设置的策略转换。
测试自定义响应标头
依次选择Swagger Petstore>测试。
选择操作 GET Finds Pets by status,并可选择状态查询参数的其他值。 选择发送。
你可以看到,自定义响应标头已添加:
测试速率限制
依次选择Swagger Petstore>测试。
选择GET 根据状态查找宠物操作。 在一行中多次选择“发送”。
在配置的时间段内发送过多请求后,会收到“429 请求过多”响应。
等待 15 秒或更长,然后再次选择“发送”。 此时应会收到“200 OK”响应。
总结
在本教程中,你了解了如何执行以下操作:
- 转换 API 以设置自定义响应标头
- 通过添加速率限制策略来保护 API
- 测试转换
后续步骤
转到下一教程:
** 监视您的 API