2.3.2. 使用应用程序计划配置 API 访问策略
遵循 第 2.3.1 节 “保护 API” 下的步骤后,您的产品仅允许通过经过身份验证的调用。在本节中,您将应用策略来区分速率限值。
在 3scale 中,applications 定义用于访问您的 API 产品的凭据。应用程序始终与决定访问策略的应用计划 关联。应用存储在 开发人员帐户 内。在基本的 3scale 计划中,只允许一个应用。在更高计划中,允许每个帐户有多个应用。
在 Prototype 中,您只能根据产品的整体影响来控制访问。在开始使用自定义方法和指标为应用计划创建更复杂的层并更深入地分析您的产品后,3scale 的灵活性是显而易见的。如需了解更多详细信息,请参阅分析指南。
- 您的 API 结构与 3scale 中方法或指标之间的映射是逻辑的。如果定义了一致的规则,您可以从 3scale 获得产品使用情况报告。您必须确定详细程度。通常而言,您应该以 5 到 20 种方法/指标为目标。
- 报告 3scale 的值只能递增。您不能设置绝对值或减少计数器。
- 将任何新方法或指标添加到 3scale 后,必须将新系统名称添加到您的集成点,如 API 网关或代码插件。
- 您可以在运行时进行更改,如速率限值,而无需重新部署。
在本例中,要将策略添加到 Echo API
产品的应用程序计划中,请执行以下步骤:
- 找到您要使用的产品。
- 在 Application Plans 部分中,选择 basic 以编辑在注册至 3scale/deploy 实例后自动生成的其中一个计划。
- 如果您找到了 命中 率限制,请将其删除。
- 使用系统名称"test",在 hits 指标下添加新方法 到计划。
- 将测试方法的速率限值设置为每小时 5。
-
使用系统名称
v1
和v2
添加两个新指标。 - 在 v2 指标下,点已启用的列来禁用访问。这与设置 0 速率限制的影响相同。
APIcast 部署
- 进入 [Your_product_name] > Integration > Configuration。
扩展映射规则部分并添加以下映射:
注意"/"的默认映射已被删除。如果您使用此默认映射,它将导致两次点击数。
代码插件部署
- 要在 3scale 授权和报告调用中添加自定义方法和指标的使用,请按照插件库中的说明和示例操作。
-
确保从 URL 结构到自定义方法
test
的映射。 -
确保从 URL 到自定义指标
v1
和v2
的映射。 使用与 3scale 基础计划关联的应用凭据来测试调用。
允许调用:
curl "https://api-2445581407825.staging.apicast.io:443/v1/test?user_key=287d64924e6120d215b1000ac07c063b"
5 次调用后,调用将开始被拒绝。这是因为为测试方法设置了限值。
调用将被拒绝,因为 3scale 基本计划中不允许
v2
:curl "https://api-2445581407825.staging.apicast.io:443/v2/test?user_key=287d64924e6120d215b1000ac07c063b"
调用将被拒绝,因为没有缺少映射规则集:
curl "https://api-2445581407825.staging.apicast.io:443/missing?user_key=287d64924e6120d215b1000ac07c063b"
根据您如何实施插件映射,NGINX 允许这些调用。对于以下呼叫,将由您的应用程序返回 404 未找到的响应。要避免这种情况,请优化映射:
curl "https://api-2445581407825.staging.apicast.io:443/noversion/test?user_key=287d64924e6120d215b1000ac07c063b"
这一基本概念为您提供了在产品和后端级别上定义 API 层所需的灵活性。您应该尽早决定要用于自定义方法和指标的信息。每当您更改系统名称时,请重新部署基本路径 第 2.3.1 节 “保护 API” 所述的更改。