您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
已重构,并重定向到通过要求 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 产品关联时生成的。 |
学习本教程的前提条件
本教程假定您已完成第一个教程,在该教程中,您创建了一个用于访问 Yahoo weather API 的 API 代理。如果您尚未完成第一个教程,请参阅通过要求 API 密钥保护 API 来保护 API。
第 1 步:创建 API 产品
- 在管理界面中,点击发布标签页,然后点击产品。
- 点击 (+) 商品。
- 在“添加产品”对话框字段中输入或选择以下内容:
字段 值 名称 免费 API 产品 显示名称 免费 API 产品 说明 免费 API 产品 环境 测试 有访问权限的应用 仅供内部使用 密钥审批类型 自动
(API 密钥生成后会自动获得批准)配额 每小时 10 个请求
(将请求数量限制为每小时 10 个)允许的 OAuth 范围 留空 填充的对话框应如下所示:
- 在“资源”部分,选择:
- API 代理:weatherapikey
- 修订版本:1
- 资源路径:/forecastrss**
资源路径指定了产品允许应用访问的资源 URI。在此示例中,应用只能通过此 API 产品访问 weatherapikey 代理上的 /forecastrss 资源。禁止尝试使用此 API 产品访问 weatherapiproxy 代理或任何其他代理上的其他任何资源。
资源路径允许使用通配符。通配符“/**”表示包含所有子 URI,表示 /forecastrss/foo/bar 形式的资源。通配符“/”表示仅包含下一级别的 URI。如需了解详情,请参阅创建 API 产品。
请注意,资源路径下拉列表显示了在指定 API 代理上定义的所有条件流程。API 代理的条件流程定义了与资源路径关联的逻辑或处理步骤。API 产品控制着对这些资源路径的访问权限。
- 点击 Import Resource。系统会添加资源路径,并自动将 weatherapikey API 代理添加到产品的 API 代理部分。
- 点击保存。您的新商品会在“商品”页面上列出。
了解详情:
第 2 步:注册开发者
要生成 API 密钥,您需要注册应用并将其与 API 产品关联。不过,您必须先注册应用开发者,然后才能注册应用。
- 在管理界面中,点击发布标签页,然后点击开发者。
- 点击 (+) 开发者。
- 在“新建开发者”对话框中,输入以下值:
- 名字:Jane
- 姓氏:教程
- 电子邮件地址:janetutorial@example.com
- 用户名:jtutorial
- 点击保存。新开发者将出现在“开发者”页面的开发者列表中。
了解详情:
第 3 步:注册应用
现在,您已经有了 API 产品和开发者,接下来就可以向 API 产品注册应用了。注册应用会为与应用关联的 API 产品生成 API 密钥。然后,您可以将密钥分发给应用开发者,以便他们通过应用访问 API 产品中的功能。
- 在 API 平台界面中,点击发布标签页,然后点击开发者应用。
- 点击 (+) 开发者应用。
- 在“添加应用”对话框中,输入以下值:
- 显示名:Weather API Key App
- 开发者:Jane 教程 (janetutorial@example.com)
- Callback 网址(回调网址):留空
- 将应用与产品相关联:
- 在商品部分中,点击 + 商品。
- 选择免费 API 产品。
- 点击对勾标记图标即可接受更改。
- 点击保存。新应用会显示在“开发者应用”页面上的应用列表中。
- 在应用列表中选择 Weather API Key App。系统会打开该应用的详情页面。
- 由于您在创建 API 产品时选择了密钥审批类型:自动,因此 API 密钥会自动获得批准,您可以立即查看它。(如果您已选择审批类型:手动,则需要点击免费 API 产品的“操作”列中的批准以批准 API 密钥)。
- 在“产品”部分中“免费 API 产品”条目旁边,点击“使用方密钥”和“使用方密钥”列中的显示,以显示生成的密钥。
使用方密钥是 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
将您的 Apigee 组织名称替换为 {org-name} 和正确的 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 来保护 API。