您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
已重构并重定向到通过要求 API 密钥 保护 API。
一个 开发者 构建一个 应用,该应用会向您的 API 发出请求以 访问您的后端服务。如需控制对 API 的访问权限,您可以要求开发者在每个请求中传递 API 密钥。如果密钥缺失或无效,请求将失败。
发布是将 API 提供给应用开发者使用的 过程。发布 API 大致可分为以下任务:
- 在 Apigee Edge 上创建与您的 API 捆绑的 API 产品。
- 在 Edge 上注册应用开发者。只有已注册的应用开发者才能注册应用。
- 开发者在 Edge 上注册应用以访问 API 产品。作为响应,开发者 会收到一个 API 密钥。现在,开发者拥有了 API 密钥,就可以向您的 API 发出请求了。
如需了解详情,请参阅发布 简介。
下表定义了用于注册应用和生成密钥的一些术语:
| 术语 | 定义 |
|---|---|
| API 产品 | 与某个服务方案相结合的一组 API 代理,该服务方案会设置对这些 API 的访问限制。API 产品是 Apigee Edge 用于授权和访问权限控制 API 的核心机制。 |
| 开发者 | API 使用方。开发者编写的应用会向您的 API 发出请求。 |
| 应用 | 开发者注册以访问 API 产品的客户端应用。向 API 产品注册 应用会生成用于访问该产品中 API 的 API 密钥。 |
| API 密钥 | 包含授权信息的字符串,客户端应用使用该字符串来访问 公开的 API 产品资源。当注册的应用与 API 产品相关联时,系统会生成 API 密钥。 |
本教程的前提条件
本教程假定您已完成第一个教程,在该教程中,您创建了一个 API 代理来访问 Yahoo 天气 API。如果您尚未完成第一个教程,请参阅 通过要求 API 密钥保护 API。
第 1 步:创建 API 产品
- 在管理界面中,依次点击发布 标签页和 产品。
- 点击 (+) 产品 。
- 在“添加产品”对话框字段中输入或选择以下内容:
字段 值 名称 Free API Product 显示名称 Free API Product 说明 Free API Product 环境 测试 访问 仅限内部使用 密钥审批类型 自动
(API 密钥在生成后会自动获得批准)Quota 每 1 小时 10 个请求
(将每小时的请求数限制为 10 个)允许的 OAuth 范围 留空 填写完毕的对话框应如下所示:

- 在“资源”部分中,选择:
- API 代理: weatherapikey
- 修订版本:1
- 资源路径:/forecastrss**
资源路径 指定了产品允许应用访问的资源 URI。在此示例中,应用只能通过此 API 产品访问 weatherapikey 代理上的 /forecastrss 资源。尝试使用此 API 产品访问 weatherapiproxy 代理或 任何其他代理上的任何其他资源都是被禁止的。
资源路径 允许使用通配符。通配符“/**” 表示包含所有子 URI,即 /forecastrss/foo/bar形式的资源。通配符“/”表示仅包含下一级 URI。 如需了解详情,请参阅创建 API 产品。
请注意,资源路径 下拉列表会显示在指定的 API 代理上定义的所有条件 流。API 代理的条件流定义了 逻辑或处理步骤,与资源路径关联。API 产品控制对这些资源路径的访问权限 。

- 点击导入资源 。系统会添加资源路径,并将 weatherapikey API 代理自动添加到 API 代理(适用于 产品) 部分。
- 点击保存 。您的新产品将列在“产品”页面上。
了解详情:
第 2 步:注册开发者
如需生成 API 密钥,您需要注册应用并将其与 API 产品相关联。不过,您必须先注册应用的开发者,然后才能注册应用。
- 在管理界面中,依次点击发布 标签页和 开发者。
- 点击 (+) 开发者 。
- 在“新建开发者”对话框中,输入以下值:
- 名字:Jane
- 姓氏:Tutorial
- 电子邮件地址:janetutorial@example.com
- 用户名:jtutorial
- 点击保存 。新开发者会显示在 “开发者”页面上的开发者列表中。
了解详情:
第 3 步:注册应用
现在您已拥有 API 产品和开发者,接下来可以向 API 产品注册应用。注册应用会生成与该应用关联的 API 产品的 API 密钥。 然后,您可以将该密钥分发给应用开发者,以便他们可以从应用访问 API 产品中的功能。
,请参阅什么是开发者门户?。- 在 API 平台界面中,依次点击 发布 标签页和 Developer Apps 。
- 点击 (+) Developer App 。
- 在“添加应用”对话框中,输入以下值:
- 显示名称:Weather API Key App
- 开发者:Jane Tutorial (janetutorial@example.com)
- 回调网址:留空
- 将应用与产品相关联:
- 在产品 部分中,点击 + 产品 。
- 选择 Free API Product。
- 点击对勾 图标以接受更改。
- 点击保存 。新应用会显示在“Developer Apps”页面上的应用列表中。
- 在应用列表中选择 Weather API Key App 。系统随即会打开应用的详情页面。
- 由于您在创建 API 产品时选择了 Key Approval Type: Automatic ,因此 API 密钥会自动获得批准,您可以立即查看该密钥。(如果您选择了 Approval Type: Manual ,则需要点击 Free API Product 的“操作”列中的批准 ,才能批准 API 密钥。)
- 在“产品”部分中,在 Free API Product 的条目旁边,点击
Consumer Key 和 Consumer Secret
列中的显示 ,以显示生成的密钥。
使用方密钥是 API 密钥的另一个名称,也是应用通过 API 代理访问 访问 预测 资源 所需的唯一密钥。通过 OAuth 2.0 保护 API 时,需要使用方密钥(以及使用方密钥) 。例如,请参阅 OAuth 2.0: 配置新的 API 代理。
了解详情:
第 4 步:在请求中使用 API 密钥
为确保 VerifyAPIKey 政策正常运行,您需要使用有效的 API 密钥调用 API 代理来对其进行测试。您可以在浏览器中、API 代理的 跟踪页面中、Apigee 控制台中或使用 c网址 请求 API 代理。请求的网址采用以下格式:
http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls将 {org-name} 替换为您的 Apigee 组织名称,并将 apikey 替换为正确的值。
在响应中查找以下内容:
<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> <channel> <title>Yahoo! Weather - Palo Alto, CA</title> <link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> <description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>
如果您在请求中省略 API 密钥,或指定 无效的密钥值,您将收到以下格式的错误响应:
{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
第 5 步:后续操作
现在,您已使用查询参数向 API 发出请求以传递 API 密钥, 接下来请修改 API 以将密钥作为标头传递。
继续学习通过 要求 API 密钥保护 API 。