简介

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

以下部分介绍 API 产品相关的主要概念

什么是 API 产品?

作为 API 提供方,您需要创建 API 产品来捆绑您的 API,以便应用开发者可以使用这些 API。您可以将 API 产品视为您的产品线。

具体来说,API 产品将以下各项捆绑在一起:

  • API 资源 (URI) 的集合
  • 服务计划
  • 您的业务特定的元数据,用于监控或分析(可选)

API 产品中捆绑的 API 资源可以来自一个或多个 API,因此您可以混合和匹配资源来创建专用功能集,如下图所示。

您可以创建多个 API 产品来解决满足特定需求的用例。例如,您可以创建一个 API 产品,将许多映射资源捆绑在一起,以便开发者轻松地将映射集成到其应用中。此外,您还可以为每个 API 产品设置不同的属性,例如不同的价格水平。例如,您可以提供以下 API 产品组合:

  • 一种 API 产品,提供低访问限制,例如每天 1000 次请求,价格便宜。第二种 API 产品,提供对同一资源的访问,但访问限制更高,价格也更高。
  • 一种免费 API 产品,提供对资源的只读权限。另一种 API 产品,提供对相同资源的读写权限,收费很低。

此外,您可以控制对 API 产品中 API 资源的访问权限。例如,您可以捆绑只能由内部开发者或仅通过付费客户访问的资源。

API 产品是对 API 进行授权和访问权限控制的中心机制。在 Apigee 中,API 密钥不是为 API 本身,而是为 API 产品预配的。换句话说,附加服务计划的资源包会预配 API 密钥。

应用开发者通过注册其应用来访问 API 产品,如注册应用中所述。当应用尝试访问 API 产品时,Apigee 会在运行时强制执行授权,以确保:

  • 发出请求的应用可以访问特定的 API 资源。
  • 发出请求的应用未超过允许的配额。
  • 如果已定义,API 产品中定义的 OAuth 范围将与应用提供的访问令牌所关联的 OAuth 范围匹配。

了解主要概念

在创建 API 产品之前,请先查看以下主要概念。

API 密钥

当您在组织中注册开发者的应用时,该应用必须至少关联一个 API 产品。由于将应用与一个或多个 API 产品配对,Edge 会向该应用分配一个唯一的使用方密钥。

使用方密钥或访问令牌充当请求凭据。应用开发者将使用方密钥嵌入到应用中,以便当应用向 Edge 托管的 API 发出请求时,应用会通过以下方式之一在请求中传递使用方密钥:

  • 当 API 使用 API 密钥验证时,应用必须直接传递使用方密钥。
  • 当 API 使用 OAuth 令牌验证时,应用必须传递源自使用方密钥的令牌。

API 密钥强制执行不会自动进行。无论您是将使用方密钥还是 OAuth 令牌作为请求凭据,API 代理都会通过在适当的流中添加 VerifyAPIKey 政策OAuth/VerifyAccessToken 政策来验证 API 代理中的请求凭据。如果您没有在 API 代理中添加凭据强制执行政策,则任何调用者都可以调用您的 API。如需了解详情,请参阅验证 API 密钥政策

为了验证请求中传递的凭据,Edge 会执行以下步骤:

  • 获取随请求传递的凭据。在 OAuth 令牌验证的情况下,Edge 会验证令牌是否未过期,然后查找用于生成令牌的使用方密钥。
  • 检索与使用方密钥关联的 API 产品列表。
  • 确认 API 产品中包含当前 API 代理,并且 API 产品中当前的资源路径(网址路径)已启用。
  • 验证使用方密钥是否未过期或被撤消,检查应用是否未被撤消,以及检查应用开发者是否处于活跃状态。

如果上述所有检查均通过,则表示凭据验证成功。

总而言之,Edge 会自动生成使用方密钥,但 API 发布者必须使用适当的政策在 API 代理中强制执行密钥检查。

自动审核与手动审核

默认情况下,将自动批准所有从应用获取访问 API 产品的密钥的请求。或者,您也可以将 API 产品配置为手动批准密钥。在这种情况下,您必须批准来自添加 API 产品的任何应用的密钥请求。如需了解详情,请参阅注册应用和管理 API 密钥

配额

配额可保护您的后端服务器以获得高流量,并区分您的产品线。例如,您可能希望将配额较高的资源作为高级产品捆绑,并使用配额较低的同一捆绑作为基本产品。如果某个产品很受欢迎并且收到大量请求,则配额可以帮助防止您的服务器不堪重负。

如需了解如何配置配额,请参阅配额政策。如需了解如何在配额政策中使用产品配额设置,请参阅以下社区帖子:API 产品的配额设置如何与 API 代理中的配额政策交互?

OAuth 范围

作为附加的安全级别,您可以将任何 OAuth 范围定义为逗号分隔列表,这些列表必须存在于通过该产品发送的访问令牌中。创建产品时,您需要了解组织使用的所有范围。您添加到产品的范围必须与现有范围匹配,否则产品不安全。

如需详细了解如何在 Edge OAuth 政策中使用范围,请参阅使用 OAuth2 范围

访问权限级别

定义 API 产品时,您可以设置以下访问权限级别。

访问权限级别 说明
公开 适用于所有开发者的 API 产品。您可以将其添加到集成式或基于 Drupal 的开发者门户。
专用或仅限内部使用

专为专用或内部用途而设计的 API 产品。

注意:专用和仅限内部使用的访问权限级别之间没有任何功能区别。选择能够准确描述 API 产品目标受众的标签。

对于集成式门户,您可以添加专用或仅限内部使用的 API 产品,并根据需要向应用开发者提供这些产品。

对于基于 Drupal 的开发者门户,您可以在开发者门户中上管理对专用或仅限内部使用的 API 产品的访问,如以下部分所述:

  • 对于 Drupal 9 开发者门户,您可以按照配置对 API 产品的访问权限中所述,配置对开发者门户上的非公开 API 或仅限内部使用的 API 产品的访问权限。
  • 对于 Drupal 7 开发者门户,您不能向开发者门户添加专用或仅限内部使用的 API 产品。如需将专用 API 产品或仅限内部使用的 API 产品提供给应用开发者,您必须通过 Edge 管理界面或 API 将这些产品手动添加到已注册的应用,如注册应用和管理 API 密钥中所述。 添加 API 产品后,开发者将在门户中看到与应用关联的 API 产品,如管理应用中的 API 产品中所述。如果应用开发者禁止访问内部或私有 API 产品,那么 API 产品将从应用中移除,并且必须由门户管理员手动重新添加。