Puoi aggiungere codice in linguaggi procedurali come JavaScript, Java e Python, quindi chiamarlo
da altre parti di un proxy API. Il supporto del codice procedurale è progettato per semplificare la gestione complessa di variabili di flusso, errori e corpi di richiesta e risposta.
Con il codice procedurale puoi:
Crea o manipola valori del corpo complessi, come i valori di richiesta e risposta.
Riscrivi gli URL, ad esempio per mascherare un URL endpoint di destinazione.
Aggiungi altre logiche non disponibili con le policy incluse.
Come funziona
Utilizzi una policy specifica per la lingua per effettuare chiamate da un flusso proxy al tuo
codice incluso. Per ognuna delle lingue supportate, Apigee include un criterio separato:
Criterio JavaScript, Criterio JavaCallout e Criterio PythonScript.
Di seguito viene descritto, a livello generale, un modo in cui funziona. Per ulteriori dettagli, consulta i riferimenti alle norme.
In un file separato, scrivi il codice che utilizzerai.
Nel codice, inserisci il risultato dell'elaborazione del codice in una variabile di flusso Apigee.
Aggiungi il file (o JAR) come file di risorse al proxy API.
Per saperne di più sui file di risorse, consulta File di risorse.
Aggiungi le norme corrispondenti alla lingua che stai utilizzando.
Configura la policy per effettuare una chiamata al tuo codice dalla posizione desiderata nel flusso del proxy API.
Utilizza un criterio per recuperare il valore del codice dalla variabile di flusso.
Limitazioni
Il modello di sicurezza di Apigee non consente chiamate di sistema come I/O di rete, lettura/scrittura del file system,
informazioni sull'utente corrente, elenco dei processi e utilizzo di CPU/memoria. Sebbene alcune di queste
chiamate possano essere funzionali, non sono supportate e possono essere disattivate attivamente in qualsiasi momento. Per
la compatibilità futura, ti consigliamo di evitare di effettuare queste chiamate nel tuo codice.
Potrebbero esistere altre limitazioni per ogni lingua supportata, come descritto nel riferimento alle norme corrispondenti della lingua.
Lingue supportate
JavaScript
Il supporto di JavaScript include un modello oggetto completo per la gestione di variabili e valori specifici
di un proxy API. Per saperne di più, consulta Modello oggetto JavaScript.
Per informazioni di riferimento ed esempi relativi alle norme, consulta la sezione Norme JavaScript.
Java
Utilizza il JavaCallout
policy per effettuare chiamate al codice Java dal flusso del proxy. L'argomento di riferimento delle norme include
esempi.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]