Puedes añadir código en lenguajes procedimentales, como JavaScript, Java y Python, y, a continuación, llamar a ese código desde otras partes de un proxy de API. La compatibilidad con el código de procedimiento se ha diseñado para que te resulte más fácil implementar la gestión compleja de variables de flujo, errores y cuerpos de solicitud y respuesta.
Con el código de procedimiento, puedes hacer lo siguiente:
Crear o manipular valores de cuerpo complejos, como valores de solicitud y respuesta.
Reescribir URLs, por ejemplo, para enmascarar una URL de endpoint de destino.
Añadir otra lógica que no esté disponible con las políticas incluidas.
Cómo funciona
Usa una política específica del idioma para hacer llamadas desde un flujo de proxy a tu código incluido. Apigee incluye una política independiente para cada uno de los lenguajes admitidos:
política JavaScript, política JavaCallout y política PythonScript.
A continuación, se describe de forma general una de las formas en las que funciona. Consulta las referencias de la política para obtener más información.
En otro archivo, escribe el código que vas a usar.
En tu código, coloca el resultado del procesamiento del código en una variable de flujo de Apigee.
Añade tu archivo (o JAR) como archivo de recursos a tu proxy de API.
Para obtener más información sobre los archivos de recursos, consulta Archivos de recursos.
Añade la política correspondiente al idioma que estés usando.
Configura la política para hacer una llamada a tu código desde el lugar que quieras del flujo de tu proxy de API.
Usa una política para obtener el valor del código de la variable de flujo.
Limitaciones
El modelo de seguridad de Apigee no permite llamadas al sistema, como E/S de red, lecturas o escrituras del sistema de archivos, información del usuario actual, lista de procesos y uso de CPU o memoria. Aunque algunas de estas llamadas pueden funcionar, no se admiten y pueden inhabilitarse en cualquier momento. Para
que sea compatible con versiones posteriores, debes evitar hacer estas llamadas en tu código.
Puede haber otras limitaciones para cada idioma admitido, tal como se describe en la referencia de la política correspondiente.
Idiomas disponibles
JavaScript
La compatibilidad con JavaScript incluye un modelo de objetos completo para gestionar variables y valores específicos de un proxy de API. Para obtener más información, consulta Modelo de objetos de JavaScript.
Para consultar información de referencia y ejemplos sobre las políticas, consulta la política de JavaScript.
Java
Usa la política JavaCalloutpara hacer llamadas al código Java desde el flujo de tu proxy. En el tema de referencia de las políticas se incluyen ejemplos.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)."],[[["\u003cp\u003eThis content covers how to use procedural code (JavaScript, Java, and Python) within Apigee and Apigee hybrid API proxies to manage flow variables, faults, and request/response bodies.\u003c/p\u003e\n"],["\u003cp\u003eApigee provides specific policies (JavaScript, JavaCallout, and PythonScript) to call out to your procedural code, which can be used to implement complex logic or rewrite URLs.\u003c/p\u003e\n"],["\u003cp\u003eProcedural code allows for the manipulation of complex body values, and logic not available through built-in policies, with results stored in flow variables for retrieval elsewhere in the API proxy.\u003c/p\u003e\n"],["\u003cp\u003eTo use procedural code, you write the code in a separate file, add it as a resource file to your API proxy, configure the relevant language policy to call the code, and retrieve the results using flow variables.\u003c/p\u003e\n"],["\u003cp\u003eThe security model in Apigee restricts certain system calls in procedural code, such as network I/O and file system operations, which should be avoided for forward compatibility.\u003c/p\u003e\n"]]],[],null,["# Incorporating procedural code\n\n*This page\napplies to **Apigee** and **Apigee hybrid**.*\n\n\n*View [Apigee Edge](https://docs.apigee.com/api-platform/get-started/what-apigee-edge) documentation.*\n\nYou can add code in procedural languages such as JavaScript, Java, and Python, then call out\nto that code from other parts of an API proxy. Support for procedural code is designed to make it\neasier for you to implement complex handling of flow variables, faults, and request and response\nbodies.\n\nWith procedural code, you can:\n\n- Create or manipulate complex body values, such as request and response values.\n- Rewrite URLs, such as to mask a target endpoint URL.\n- Add other logic not available with included policies.\n\nHow it works\n------------\n\nYou use a policy specific to the language in order to make calls from a proxy flow to your\nincluded code. For each of the supported languages, Apigee includes a separate policy:\n[JavaScript policy](/apigee/docs/api-platform/reference/policies/javascript-policy), [JavaCallout policy](/apigee/docs/api-platform/reference/policies/java-callout-policy), and [PythonScript policy](/apigee/docs/api-platform/reference/policies/python-script-policy).\n\nThe following describes, at a high level, one way this works. Be sure to see the policy\nreferences for more details.\n\n1. In a separate file, write the code you're going to use.\n2. In your code, put the result of the code's processing into an Apigee flow variable. You'll retrieve the variable value elsewhere in your API proxy. For more about flow\n variables, see [Managing\n proxy state with flow variables](/apigee/docs/api-platform/fundamentals/introduction-flow-variables).\n\n3. Add your file (or JAR) as a resource file to your API proxy. For more about resource files, see [Resource files](/apigee/docs/api-platform/develop/resource-files).\n\n4. Add the policy corresponding to the language you're using. Configure the policy to make a call to your code from the desired place in your API\n proxy's flow.\n\n5. Use a policy to retrieve the code's value from the flow variable.\n\nLimitations\n-----------\n\nThe Apigee security model does not permit system calls such as network I/O, filesystem\nread/writes, current user info, process list, and CPU/memory utilization. Although some such\ncalls may be functional, they are unsupported and liable to be actively disabled at any time. For\nforward compatibility, you should avoid making such calls in your code.\n\nOther limitations may exist for each supported language, as described in the language's\ncorresponding policy reference.\n\nSupported languages\n-------------------\n\n### JavaScript\n\nSupport for JavaScript includes a full object model for handling variables and values specific\nto an API proxy. For more, see [JavaScript object model](/apigee/docs/api-platform/reference/javascript-object-model).\n\nFor policy reference information and examples, see [JavaScript policy](/apigee/docs/api-platform/reference/policies/javascript-policy).\n\n### Java\n\nUse the [JavaCallout\npolicy](/apigee/docs/api-platform/reference/policies/java-callout-policy) to make calls to Java code from your proxy's flow. The policy reference topic includes\nexamples.\n\n### Python\n\nUse the [Python Script\npolicy](/apigee/docs/api-platform/reference/policies/python-script-policy) to call out to Python code."]]