合并程序化代码

本页面适用于 Apigee 和 Apigee 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 代码。