您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
Apigee Edge API 示例包含示例 API 代理、政策、代码和工具,用于演示以下所述的 Apigee Edge API 服务的各项功能。
如需查看有关使用示例的说明,请参阅使用 API 代理示例。
在实践中学习
想快速上手并开始构建扎实的 Apigee Edge 知识库?我们在 GitHub 中提供了一个“learn-edge”示例库,可让您快速部署、调用和跟踪一些示例代理,从最简单的代理开始,逐步过渡到演示 API 密钥验证、配额、响应缓存、故障处理等功能的代理。
克隆代码库并设置环境(只需几分钟)后,您可以在不到一分钟的时间内试用每个示例。由于每个样本都会创建同一代理的新修订版本,因此您的环境不会因大量样本而变得杂乱无章。您可以随时切换修订版本、在管理界面中重新部署其他修订版本,以及查看代理代码。每个示例的 README 文件还会简要介绍示例的作用和设置方式。
快来试试吧!https://github.com/apigee/api-platform-samples/tree/master/learn-edge
文档实战宝典示例
我们为 API 代理 Cookbook 主题提供了一组示例。
| 名称 | 说明 | 政策类型 | 资源 |
|---|---|---|---|
| javascript-cookbook | 演示了一个简单的 JavaScript 代码段,该代码段可添加来自变量的 HTTP 标头、将 JSON 格式的天气预报转换为 XML,并为移动客户端缩减内容。 | minimize.js setHeaders.js |
|
| javascript-mashup-cookbook | 一个完整的 JavaScript 应用,用于调用公共 API、合并结果,并为客户端应用生成丰富的响应。(注意:此 API 代理实现的功能与 policy-mashup 相同,这表明可以使用不同的技术来解决同一问题。) | JavaScript | MashItUp.js |
| java-hello | 简单的 hello world Java callout。 | JavaCallout | JavaHello.java |
| java-cookbook | 将响应内容和标头转换为大写。 | JavaCallout |
ResponseUppercase.java |
| java-properties | 演示了如何在 JavaCallout 中使用属性。 | JavaCallout | JavaProperties.java |
| java-error | 演示了可在 Java Callout 代码中使用的错误处理模式。 | JavaCallout | JavaError.java |
| policy-mashup-cookbook | 一个完整的应用,它使用政策组合调用两个公共 API、合并结果,并为客户端应用生成丰富的响应。(注意:此 API 代理实现的功能与 javascript-mashup 相同,这表明可以使用不同的技术来解决同一问题。) | AssignMessage ServiceCallout ExtractVariables Javascript XMLToJSON |
GenerateResponse.js |
示例 API 代理
以下 API 代理位于 GitHub 中,其 README 页面提供了有关示例的详细说明。如果您想了解特定政策在示例中的运作方式,请在下方的“政策类型”列中找到您感兴趣的政策,然后点击“名称”列中的示例名称。(政策链接到文档中各自的参考页面。)
参考文档和工具
除了上表中的文档食谱示例和示例代理之外,Edge GitHub 示例还包含以下资源:
| 名称 | 说明 | 政策类型 | 资源 |
|---|---|---|---|
| regex-protection | 正则表达式威胁防护政策可保护您的后端 API 和微服务免受 SQL 注入攻击。 | 不适用 | |
| oauth-validate-key-secret | 您正在实现 OAuth 密码授权类型流程。在调用外部身份提供商来验证用户凭据之前,您需要在 Edge 上验证应用客户端密钥和密码。 | OAuthV2,其他 | 不适用 |
| condition-pattern-matching | 借助此代理,您可以轻松试用和测试 API 代理流程中的条件语句。 | AssignMessage | 不适用 |
| access-entity | 展示了如何从 Apigee Edge 数据存储区中检索实体的配置文件。 | AssignMessage AccessEntity ExtractVariables |
无 |
| apikey | 实现简单的 API 密钥验证 | VerifyAPIKey AssignMessage Quota |
无 |
| async-callout | 演示了如何使用 JavaScript httpClient 进行简单的异步调出。 | JavaScript | assemble_response.js callout.js |
| base64encoder | 演示了如何从 API 代理中的 JavaScript 资源调用 JavaScript include。 | AssignMessage JavaScript |
core-min.js enc-utf16-min.js enc-base64-min.js encodeAuthHeader.js |
| conditional-policy | 实现简单的条件政策实施。当请求包含 HTTP 标头 responsetime:true 时,政策会执行一个 Python 脚本,该脚本会将一组性能指标作为 HTTP 标头添加到响应消息中 | 脚本 (Python) | timer.py |
| dynamic-endpoint | 在稍复杂的场景中实现简单的条件路由,该场景定义了两个网址和一个默认路由。 | 无 | 无 |
| jira-release-notes | 这是 Apigee 文档团队用于从 Jira 生成版本说明的 API 代理。 | JSONToXML XSL |
releasenotes_api.xsl |
| kerberos-credential-mediation | 此示例展示了如何在 Apigee Edge 上执行 Kerberos 凭据中介。 | JavaCallout | Java JAR 文件 |
| oauth-advanced | 一个完整的授权代码授予类型流程示例,其中 Apigee Edge 用作授权服务器。 |
GenerateAccessToken 其他许多功能… |
请参阅示例代码 |
| oauth-client-credentials | 演示了为客户端凭据授权类型配置的完全正常运行的 OAuth 2.0 令牌端点。 | GenerateAccessToken | 无 |
| oauth-login-app | 已弃用。我们建议您改用 oauth-advanced 示例。 | ||
| oauth-validate-key-secret | 演示了一种在密码授权类型流程中调用身份提供商来验证用户凭据之前,验证客户端密钥和密文的技术。 | OAuthV2 AssignMessage ExtractVariables ServiceCallout RaiseFault |
无 |
| oauth-verify-accesstoken | 演示了配置为验证 OAuth 2.0 访问令牌和验证配额的 API 代理。 | VerifyAccessToken Quota |
无 |
| oauth10a-3legged | 演示了三足式 OAuth 1.0a 配置。 | GenerateAceessToken GenerateRequestToken ServiceCallout VerifyAccessToken |
无 |
| outbound-oauth | 使用 Microsoft Azure translator API 来翻译 Twitter 微博。为此,该方法会发出出站调用以获取 OAuth 访问令牌,然后使用 API 服务缓存政策缓存该令牌,并在每次发出出站调用时重复使用缓存的令牌。 此外,还包括用于调用 API 代理的演示浏览器应用。 | AssignMessage LookupCache PopulateCache Javascript |
api-config.js api-token-get.js translate-query.js translate-results.js |
| 分页 | 根据客户端提供的 limit 和 offset 参数对 XML 响应消息进行分页 | AssignMessage ExtractVariables ResponseCache VerifyApiKey XSL |
paginate.xslt |
| response-cache | 演示如何在 Edge 上缓存天气预报 10 分钟。 | ResponseCache AssignMessage |
无 |
| simple-python | 演示了一个简单场景,即在 响应中附加一个 Python 脚本,该脚本会向响应添加标头值。 |
脚本 (Python) | setHeader.py |
| soap | 演示了如何通过 XSL 转换来重写 WSDL 文件,以响应包含查询参数 ?wsdl 的请求。 | AssignMessage ExtractVariables Script (Python) XSL |
calculateaddress.py fixwsdl.xsl |
| 流式 | 演示 HTTP 流式传输配置。 | 无 | 无 |
| target-reroute | 演示了如何使用 JavaScript 根据请求消息的内容动态选择目标网址。 | ExtractVariables Javascript |
rewriteTargetUrl.js |
| twitter-mobile-timeline | 演示了如何使用 JavaScript 从推文中剥离不必要的参数,从而获得精简的 Twitter 时间轴,以便资源受限的移动设备能够顺畅运行。 | AssignMessage JavaScript |
MobileTimeline.js |
| twitter-oembed | 将时间轴响应(例如来自 statuses/user_timeline.json 的响应)转换为 oEmbed 响应,其中包含时间轴数据作为富 HTML 内容。 | AssignMessage JavaScript |
search-oembed.js |
| 变量 | 演示如何根据传输、JSON 和 XML 消息内容提取和设置变量。 | AssignMessage ExtractVariables XMLToJSON |
minimize.js |
| xmltojson | 将响应数据从 XML 转换为 JSON。 | XMLToJSON JSONToXML |
无 |
|
|
XML 架构文件,可在配置 API 代理、政策、API 产品以及开发者和应用配置文件时用作参考。 |
||
|
|
包含一个部署工具 deploy.py,该工具可将 API 代理导入到 Apigee Edge 上的组织,然后将其部署到指定的环境。 |
||
|
|
组织快照工具可检索组织设置,包括开发者、API 产品、虚拟主机、键值对映射等。该工具可用于备份组织的详细信息,或发现组织中的设置。 |
Apigee-127
如果您是程序员,Apigee-127 可让您使用 Node.js 和 Swagger 快速开始编写 API 代理代码。您还可以在 GitHub 上找到 a127 示例:https://github.com/apigee-127/a127-samples。
分享您的体验
在 Apigee 开发者论坛中分享您的体验。