本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
以下各部分介绍 API 产品及相关概念,例如配额和 API 密钥。
什么是 API 产品?
作为 API 提供方,您需要创建 API 产品来捆绑您的 API,以便应用开发者可以使用这些 API。您可以将 API 产品视为您的产品线。
具体而言,一个 API 产品捆绑了一项或多项操作。操作指定可以访问相应代理的 API 代理和资源路径。操作还可以按 HTTP 方法和配额来限制访问。
API 产品是 API 访问权限控制的中心机制。通过在开发者应用中定义一个或多个 API 产品,您可以使用 API 密钥限制对代理的访问。在 Apigee 中,API 密钥不是为 API 本身,而是为 API 产品预配的。换句话说,系统会为定义产品线或特定服务计划的操作包预配 API 密钥。
常见用例
您可以创建多个包含能够解决特定使用场景的操作的 API 产品。例如,您可以创建一个 API 产品,将许多包含映射资源的操作捆绑到一起,以便开发者能够轻松地将地图集成到他们的应用中。
此外,您可以使用 API 产品并根据相应条件将价格水平定义为:
根据请求数量:
- 高级:每天无限次请求
- 基本:每天最多 1,000 个请求
- 免费:每天最多 100 个请求
根据访问权限级别:
- 高级:读取、写入、更新和删除
- 基本:读取和更新
- 免费:只读
根据以上任意组合:
- 高级:每天可无限地进行读写
- 高级:每天最多可读取和写入 1,000 个请求
- 基本:每天最多读取和写入 100 次
- 免费:每天最多读取 1,000 次
- 免费:每天仅限只读 100 个请求
要求
属于随用随付一部分的 API 产品必须包含:
- 使用流钩子构建的可扩展代理 或
- 可扩展政策,例如 VerifyAPIKey 政策或 OAuthv2 政策
运维
操作是一组特性,用于根据资源路径、HTTP 方法和配额等条件限制对一个或多个 API 代理进行访问。操作包括以下特性:
属性 | 是否必需? | 说明 |
---|---|---|
API 代理 | 必填 | 每个操作组必须指定 API 代理。每个操作组只能使用一个代理。 |
远程服务 | 视情况而定 | 只有在安装并计划使用 Apigee Adapter for Envoy 时,它才是必需项。 |
资源路径 | 必填 | 每个操作组必须指定一个或多个资源路径。操作中的资源路径会限制访问 API 代理中的特定资源。(资源路径是代理基本路径后面的 API 代理请求网址的一部分。) |
HTTP 方法 | 可选 | 您还可以按 HTTP 方法限制对代理的访问。例如,如果您为操作组指定 GET 和 POST 方法,则只有 HTTP GET 和 POST 请求才能访问指定资源路径的代理。如果未指定方法,则允许所有方法。 |
配额 | 可选 | 您可以为操作组指定配额。如果已指定,则操作组中指定的配额优先于 API 产品级配额。 |
自定义属性 | 可选 | 自定义特性对于指标、监控或您想通过 API 产品存储额外信息(稍后可访问或检索)的情况非常有用。除了任何 API 产品级别的自定义属性之外,还存在与操作关联的自定义属性,且这些属性可以在运行时中作为前缀为 apiproduct.operation.attributes 的流变量进行访问。 |
API 密钥
当您在组织中注册开发者的应用时,该应用必须至少关联一个 API 产品。将应用与一个或多个 API 产品配对后,Apigee 会为该应用分配一个唯一的使用方密钥。另请参阅通过注册应用来控制对 API 的访问权限。
使用方密钥或访问令牌充当请求凭据。应用开发者将使用方密钥嵌入应用中,因此当应用向 Apigee 托管的 API 发出请求时,应用会通过以下方式之一在请求中传递使用方密钥:
- 当 API 使用 API 密钥验证时,应用必须直接传递使用方密钥。
- 当 API 使用 OAuth 令牌验证时,应用必须传递源自使用方密钥的令牌。
API 密钥强制执行不会自动进行。无论您是将使用方密钥还是 OAuth 令牌作为请求凭据,API 代理都会通过在适当的流中添加 VerifyAPIKey 政策或 VerifyAccessToken
政策配置(请参阅 OAuthv2 政策)。如果您没有在 API 代理中添加凭据强制执行政策,则任何调用者都可以调用您的 API。
为了验证请求中传递的凭据,Apigee 会执行以下步骤:
- 获取随请求传递的凭据。在执行 OAuth 令牌验证时,Apigee 会验证该令牌是否未过期,然后查找用于生成令牌的使用方密钥。
- 检索与使用方密钥关联的 API 产品列表。
- 如果 API 产品已启用当前的资源路径(网址路径),则确认 API 产品中包含当前的 API 代理,如果产品中包含当前的 API 代理,则确认请求会使用指定的 HTTP 动词。
- 验证尚未超过配额(如果已指定)。
- 验证使用方密钥是否未过期或被撤消,检查应用是否未被撤消,以及检查应用开发者是否处于活跃状态。
如果上述所有检查均通过,则表示凭据验证成功。
最重要的是,Apigee 会自动生成使用方密钥,但 API 发布商必须使用适当的政策在 API 代理中强制执行密钥检查。
密钥审批
默认情况下,将自动批准所有从应用获取访问 API 产品的密钥的请求。或者,您也可以将 API 产品配置为必须手动批准密钥。管理 API 产品中介绍了此操作的设定。在这种情况下,您必须批准来自添加 API 产品的任何应用的密钥请求。如需了解详情,请参阅通过注册应用来控制对 API 的访问权限。
配额
配额可保护您的后端服务器以获得高流量方差,并区分您的产品线。例如,您可以将配额较高的资源作为高级产品捆绑,并使用配额较低的同一捆绑作为基本产品。如果某个产品很受欢迎并在短时间内收到大量请求,则配额可以帮助保护您的服务器不会变得不堪重负。
您可以指定适用于 API 产品所含的所有 API 代理的配额,也可以指定操作级配额。在操作中指定的配额优先于在 API 产品级别设置的配额。
在 API 产品上设置配额限制不会自动执行配额。这只是可以在配额政策中引用的默认限制。在产品上设置配额以供配额政策参考具有以下优势:
- 使用配额政策可对 API 产品中的所有 API 代理应用统一设置。
- 如果您在运行时更改 API 产品的配额设置,则配额政策会自动引用更新后的配额设置。
详情请参阅以下内容:
OAuth 范围
您可以将 OAuth 范围定义为逗号分隔列表,该列表必须包含在与产品关联的访问令牌中。有关将范围与 Apigee OAuth 政策结合使用的详细信息,请参阅使用 OAuth2 范围。
访问权限级别
定义 API 产品时,您可以设置以下访问级别。
访问权限级别 | 说明 |
---|---|
Public |
适用于所有开发者的 API 产品。您可以将其添加到集成式或基于 Drupal 的开发者门户。 |
Private 或 Internal only |
专为专用或内部用途而设计的 API 产品。
对于集成式门户,您可以添加 对于基于 Drupal 的开发者门户,您可以在开发者门户上管理对
|