<ph type="x-smartling-placeholder"></ph>
您正在查看 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 产品相关联 |
本教程的前提条件
本教程假定您已完成第一个教程,并在这里创建 API 访问 Yahoo 天气 API。如果您尚未学完第一个教程,请参阅 保护 通过要求 API 密钥来 API 访问。
第 1 步:创建 API 产品
- 在管理界面中,点击发布标签页,然后 商品。
- 点击 (+) 商品。
- 在“添加产品”对话框字段中输入或选择以下内容:
字段 值 名称 免费的 API 产品 显示名称 免费的 API 产品 说明 免费的 API 产品 环境 测试 访问 仅限内部使用 密钥审批类型 自动
(API 密钥生成后会自动批准)配额 每小时 10 个请求
(将请求次数限制为每小时 10 次)允许的 OAuth 范围 留空 已填充的对话框应如下所示:
- 在“资源”部分,选择:
<ph type="x-smartling-placeholder">
- </ph>
- API 代理:weatherapikey
- 修订版本:1
- 资源路径:/forecastrss**
资源路径指定商品允许的资源 URI。 即可访问该应用在此示例中,应用只能访问 /forecastrss weatherapikey 代理上的资源。尝试使用此 访问 weatherapiproxy 代理上或 其他任何代理。
资源路径允许使用通配符。通配符“/**” 表示包含所有子 URI,即以下形式的资源: /forecastrss/foo/bar.通配符“/”表示只有下一级别的 URI 包括在内。请参阅创建 API 产品了解详情。
请注意,资源路径下拉列表显示了 流。API 代理的条件流定义了 逻辑或处理步骤。API 产品控制访问权限 资源路径
- 点击 Import Resource。添加了资源路径,并且 weatherapikey API 代理会自动添加到 产品部分。
- 点击保存。您的新商品会列在“商品”页面上。
了解详情:
第 2 步:注册开发者
若要生成 API 密钥,您需要注册一个应用,并将其与一个 API 产品相关联。不过,您 必须先注册应用程序的开发者,然后才能注册应用程序。
- 在管理界面中,点击发布标签页,然后 开发者。
- 点击 (+) 开发者。
- 在“新建开发者”对话框中,输入以下值:
<ph type="x-smartling-placeholder">
- </ph>
- 名字:Jane
- 姓氏:教程
- 电子邮件地址:janetutorial@example.com
- 用户名:jtutorial
- 点击保存。新开发者会显示在 开发者页面
了解详情:
第 3 步:注册应用
现在,您已经有了 API 产品和开发者,可以使用 API 注册应用了 产品。注册应用后,系统会为与该应用关联的 API 产品生成 API 密钥。 然后,您可以将密钥分发给应用开发者,以便他们使用 API 中的功能 展示商品。
- 在 API 平台界面中,依次点击发布标签页和开发者 应用。
- 点击 (+) 开发者应用。
- 在“添加应用”对话框中,输入以下值:
<ph type="x-smartling-placeholder">
- </ph>
- 显示名称:Weather API Key App
- 开发者:Jane 教程 (janetutorials@example.com)
- Callback 网址:留空
- 将应用与产品相关联:
<ph type="x-smartling-placeholder">
- </ph>
- 在商品部分,点击 + 商品。
- 选择免费 API 产品。
- 点击对勾标记图标以接受更改。
- 点击保存。新应用即会显示在开发者 “应用”页面。
- 选择 Weather API Key App 应用列表中。系统随即会打开该应用的详情页面。
- 因为您在创建 API 时选择了密钥审批类型:自动 API 密钥会自动获得批准,您可以立即查看。(如果 审批类型:手动,则需要点击 在“操作”列中为免费 API 产品批准以批准该 API key.)
- 在“产品”部分中,点击免费 API 产品条目旁边的
在 Consumer Key(使用方密钥)和 Consumer Secret(使用方密钥)中显示
列以显示生成的密钥。
使用方密钥是 API 密钥的别名,是应用需要唯一密钥 访问 forecast 资源 通过 API 代理使用方密钥(以及使用方键值)在 通过 OAuth 2.0 保护 API。例如,请参阅 OAuth 2.0: 配置新的 API 代理。
了解详情:
第 4 步:在请求中使用 API 密钥
为确保 VerifyAPIKey 政策工作正常,您需要 使用有效的 API 密钥对 API 代理进行调用。您可以在浏览器中从以下位置请求 API 代理: API 代理的跟踪页面(通过 Apigee 控制台或使用 c网址)。请求的网址是 表单:
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 密钥。