2.3. 遵循基本路径

您可以从末尾单独跟踪基本路径。或者,您也可以根据需要选择从该路径中执行一些步骤。每个路径都可以独立,但 PrototypeBasicAdvanced 路径会相互构建。

2.3.1. 保护 API

对于完整的生产实施,您需要对产品结构以及与 3scale 的集成做出一些基本决策。

您可以选择多种用于产品流量的身份验证模式。查阅 有关可用选项的指南 并配置设置。

重要

设置身份验证后,您不应切换身份验证模式,因为此操作可能会使现有凭证无效。

您还 有几个用于 API 流量管理器层的部署选项。APIcast(基于 NGINX 的 API 网关)结合了易于配置和性能的结合,因此在 3scale 客户中最喜爱它。您可以使用托管 APIcast 快速启动,但会出现卷限制和其他延迟。或者,您也可以将其部署到自己的服务器上,以获得最佳性能和完全不受限制的流量卷。

托管的 APIcast

  1. 第一次登录管理门户后,请按照插入向导操作。
  2. 继续迭代您的产品配置,如细化访问策略,直到您达到适合生产的版本。
  3. 将 APIcast 配置提升到生产网关。

自我管理的 APIcast

  1. OpenShift 服务器上设置 API 网关的测试安装。
  2. 继续迭代 API 配置(如精心修改的访问策略),直到您达到适合生产的版本。
  3. 将 APIcast 配置提升到生产网关。
  4. APIcast 策略涵盖了配置 API 访问策略的一些概念

2.3.2. 使用应用程序计划配置 API 访问策略

遵循 第 2.3.1 节 “保护 API” 下的步骤后,您的产品仅允许通过经过身份验证的调用。在本节中,您将应用策略来区分速率限值。

在 3scale 中,applications 定义用于访问您的 API 产品的凭据。应用程序始终与决定访问策略的应用计划 关联。应用存储在 开发人员帐户 内。在基本的 3scale 计划中,只允许一个应用。在更高计划中,允许每个帐户有多个应用。

Prototype 中,您只能根据产品的整体影响来控制访问。在开始使用自定义方法和指标为应用计划创建更复杂的层并更深入地分析您的产品后,3scale 的灵活性是显而易见的。如需了解更多详细信息,请参阅分析指南

重要
  • 您的 API 结构与 3scale 中方法或指标之间的映射是逻辑的。如果定义了一致的规则,您可以从 3scale 获得产品使用情况报告。您必须确定详细程度。通常而言,您应该以 5 到 20 种方法/指标为目标。
  • 报告 3scale 的值只能递增。您不能设置绝对值或减少计数器。
  • 将任何新方法或指标添加到 3scale 后,必须将新系统名称添加到您的集成点,如 API 网关或代码插件。
  • 您可以在运行时进行更改,如速率限值,而无需重新部署。

在本例中,要将策略添加到 Echo API 产品的应用程序计划中,请执行以下步骤:

  1. 找到您要使用的产品。
  2. Application Plans 部分中,选择 basic 以编辑在注册至 3scale/deploy 实例后自动生成的其中一个计划。
  3. 如果您找到了 命中 率限制,请将其删除。
  4. 使用系统名称"test",在 hits 指标下添加新方法 到计划。
  5. 将测试方法的速率限值设置为每小时 5。
  6. 使用系统名称 v1v2 添加两个新指标
  7. 在 v2 指标下,点已启用的列来禁用访问。这与设置 0 速率限制的影响相同。

APIcast 部署

  1. 进入 [Your_product_name] > Integration > Configuration
  2. 扩展映射规则部分并添加以下映射:

    映射规则
    注意

    "/"的默认映射已被删除。如果您使用此默认映射,它将导致两次点击数。

代码插件部署

  1. 要在 3scale 授权和报告调用中添加自定义方法和指标的使用,请按照插件库中的说明和示例操作。
  2. 确保从 URL 结构到自定义方法 test 的映射。
  3. 确保从 URL 到自定义指标 v1v2 的映射。
  4. 使用与 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” 所述的更改。

2.3.3. 使用开发者门户吸引开发人员

您可以使用开发人员门户查找用于创建提供 API 使用 的信息。考虑用 Textile 或 Markdown 编写您的内容。以下是您可能需要考虑的可选步骤: