Pode adicionar código em linguagens processuais, como JavaScript, Java e Python, e, em seguida, chamar esse código a partir de outras partes de um proxy de API. O suporte para código processual foi concebido para facilitar a implementação do processamento complexo de variáveis de fluxo, falhas e corpos de pedidos e respostas.
Com o código processual, pode:
Criar ou manipular valores de corpo complexos, como valores de pedidos e respostas.
Reescrever URLs, por exemplo, para ocultar um URL de ponto final de destino.
Adicionar outra lógica não disponível com as políticas incluídas.
Como funciona
Usa uma política específica do idioma para fazer chamadas de um fluxo de proxy para o seu código incluído. Para cada um dos idiomas suportados, o Apigee inclui uma política separada:
Política de JavaScript, Política JavaCallout e Política PythonScript.
A descrição seguinte explica, a um nível elevado, uma forma de funcionamento. Consulte as referências
da política para ver mais detalhes.
Num ficheiro separado, escreva o código que vai usar.
No seu código, coloque o resultado do processamento do código numa variável de fluxo do Apigee.
Adicione o seu ficheiro (ou JAR) como um ficheiro de recursos ao seu proxy de API.
Para saber mais sobre ficheiros de recursos, consulte o artigo Ficheiros de recursos.
Adicione a política correspondente ao idioma que está a usar.
Configure a política para fazer uma chamada ao seu código a partir do local pretendido no fluxo do proxy da API.
Use uma política para obter o valor do código a partir da variável de fluxo.
Limitações
O modelo de segurança do Apigee não permite chamadas de sistema, como E/S de rede, leituras/escritas do sistema de ficheiros, informações do utilizador atual, lista de processos e utilização de CPU/memória. Embora algumas destas chamadas possam ser funcionais, não são suportadas e podem ser ativamente desativadas em qualquer altura. Para
garantir a compatibilidade futura, deve evitar fazer essas chamadas no seu código.
Podem existir outras limitações para cada idioma suportado, conforme descrito na referência da política correspondente do idioma.
Idiomas suportados
JavaScript
O suporte para JavaScript inclui um modelo de objeto completo para processar variáveis e valores específicos
de um proxy de API. Para mais informações, consulte o modelo de objeto JavaScript.
Para ver informações de referência e exemplos de políticas, consulte a Política de JavaScript.
Java
Use a política JavaCalloutpara fazer chamadas para código Java a partir do fluxo do seu proxy. O tópico de referência da política inclui exemplos.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 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."]]