合并程序化代码

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

您可以采用 JavaScript、Java 和 Python 等程序化语言添加代码,然后从 API 代理的其他部分调用该代码。对程序化代码的支持旨在让您更轻松地实现流变量、故障以及请求和响应正文的复杂处理。

利用程序化代码,您可以:

  • 创建或操纵复杂的正文值,例如请求和响应值。
  • 重写网址,例如屏蔽目标端点网址。
  • 添加包含的政策中未提供的其他逻辑。

运作方式

您可以使用特定于某种语言的政策,从代理流调用包含的代码。对于每种支持的语言,Apigee 都包含单独的政策:JavaScript 政策JavaCallout 政策PythonScript 政策

下文简要介绍了工作原理。如需了解更多详情,请务必查看政策参考文档。

  1. 在一个单独的文件中,编写您要使用的代码。
  2. 在代码中,将代码处理结果放入 Apigee 流变量中。

    您可以在 API 代理中的其他位置检索变量值。如需详细了解流变量,请参阅使用流变量管理代理状态

  3. 将您的文件(或 JAR)作为资源文件添加到 API 代理。

    如需详细了解资源文件,请参阅资源文件

  4. 添加与您使用的语言相对应的政策。

    配置政策,以便从 API 代理流的所需位置调用您的代码。

  5. 使用政策从流变量中检索代码值。

限制

Apigee 安全模型不允许系统调用,例如网络 I/O、文件系统读取/写入、当前用户信息、进程列表和 CPU/内存利用率。尽管有些此类调用可能正常工作,但不受支持,并且可能随时会被主动停用。为了实现前向兼容性,您应该避免在代码中进行此类调用。

每种支持的语言都可能存在其他限制,如该语言对应的政策参考文档中所述。

支持的语言

JavaScript

对 JavaScript 的支持包含完整的对象模型,用于处理特定于 API 代理的变量和值。如需了解详情,请参阅 JavaScript 对象模型

如需了解政策参考信息和示例,请参阅 JavaScript 政策

Java

使用 JavaCallout 政策从代理的流中调用 Java 代码。政策参考主题包括示例。

Python

使用 PythonScript 政策调用 Python 代码。