本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
您可以采用 JavaScript、Java 和 Python 等程序化语言添加代码,然后从 API 代理的其他部分调用该代码。对程序化代码的支持旨在让您更轻松地实现流变量、故障以及请求和响应正文的复杂处理。
利用程序化代码,您可以:
- 创建或操纵复杂的正文值,例如请求和响应值。
- 重写网址,例如屏蔽目标端点网址。
- 添加包含的政策中未提供的其他逻辑。
运作方式
您可以使用特定于某种语言的政策,从代理流调用包含的代码。对于每种支持的语言,Apigee 都包含单独的政策:JavaScript 政策、JavaCallout 政策和 PythonScript 政策。
下文简要介绍了工作原理。如需了解更多详情,请务必查看政策参考文档。
- 在一个单独的文件中,编写您要使用的代码。
- 在代码中,将代码处理结果放入 Apigee 流变量中。
您可以在 API 代理中的其他位置检索变量值。如需详细了解流变量,请参阅使用流变量管理代理状态。
- 将您的文件(或 JAR)作为资源文件添加到 API 代理。
如需详细了解资源文件,请参阅资源文件。
- 添加与您使用的语言相对应的政策。
配置政策,以便从 API 代理流的所需位置调用您的代码。
- 使用政策从流变量中检索代码值。
限制
Apigee 安全模型不允许系统调用,例如网络 I/O、文件系统读取/写入、当前用户信息、进程列表和 CPU/内存利用率。尽管有些此类调用可能正常工作,但不受支持,并且可能随时会被主动停用。为了实现前向兼容性,您应该避免在代码中进行此类调用。
每种支持的语言都可能存在其他限制,如该语言对应的政策参考文档中所述。
支持的语言
JavaScript
对 JavaScript 的支持包含完整的对象模型,用于处理特定于 API 代理的变量和值。如需了解详情,请参阅 JavaScript 对象模型。
如需了解政策参考信息和示例,请参阅 JavaScript 政策。
Java
使用 JavaCallout 政策从代理的流中调用 Java 代码。政策参考主题包括示例。
Python
使用 PythonScript 政策调用 Python 代码。