Questa pagina si applica a Apigee e Apigee ibridi.
Visualizza la documentazione di Apigee Edge.
Che cos'è un callout Java?
Se non hai mai utilizzato i callout Java, ti consigliamo di iniziare con l'articolo Come creare un callout.
Utilizzare le proprietà in un callout Java
Le proprietà ti consentono di specificare coppie di nome/valore in un criterio di callout Java a cui puoi accedere dal codice Java in fase di esecuzione. Devi specificare un valore di stringa letterale per ogni proprietà. Non puoi fare riferimento alle variabili di flusso in questo elemento.
Esaminiamo un semplice esempio di callout Java che utilizza le proprietà. In questo esempio,
creare un proxy che includa un criterio di callout Java. Il criterio utilizza l'elemento <Properties>
per specificare una coppia nome/valore. Nel codice Java, recupero il valore e lo utilizzo per impostare un'intestazione di risposta.
Scarica il progetto
Per semplificare le cose, puoi scaricare questo progetto dal repository api-platform-samples di Apigee in GitHub.
- Scarica o clona api-platform-samples sul tuo sistema.
- In un terminale o in un editor di codice a tua scelta, vai al progetto
api-platform-samples/doc-samples/java-properties
.
Norme relative ai callout Java
Il criterio utilizza l'elemento <Properties>
. Questo elemento consente di specificare
coppie di nome/valore. In fase di runtime, il codice Java può accedere ai valori delle proprietà specificate in
le norme, come vedremo a breve.
<JavaCallout name="java-callout"> <ClassName>com.apigeesample.JavaProperties</ClassName> <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL> <Properties> <Property name="prop">WORLD!</Property> </Properties> </JavaCallout>
Il codice Java di esempio
Il codice Java per questo esempio mostra come recuperare una proprietà che è stata specificata nel
Norme sui callout Java. Nel progetto di esempio, puoi trovare il codice sorgente in
java-properties/callout/src/main/java/JavaProperties.java
. Analizzeremo i passaggi per compilare e implementare questo codice più avanti in questo argomento.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Map; public class JavaProperties implements Execution { private Map <String,String> properties; // read-only public JavaProperties(Map <String,String> properties) { this.properties = properties; } public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop")); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Compila il codice con Maven
Il progetto è configurato in modo da poter compilare con Maven. Se vuoi utilizzare javac
, includeremo anche un esempio.
- Assicurati di aver installato Maven:
mvn -version
- Esegui lo script
java-properties/buildsetup.sh
. Questo script installa le dipendenze JAR richieste nel repository Maven locale. - cd alla directory
java-properties/callout
. - Esegui Maven:
mvn clean package
- Se vuoi, verifica che il file JAR
edge-custom-policy-java-properties.jar
sia stato copiato injava-properties/apiproxy/resources/java
. Si tratta della posizione obbligatoria per i file JAR che vuoi eseguire il deployment con un proxy.
Compila con javac (facoltativo)
Se vuoi utilizzare javac
per compilare il codice, puoi fare qualcosa di simile alla
(dalla directory java-properties
). I file JAR richiesti sono forniti nella directory java-properties/lib
.
- da CD a
api-platform-samples/doc-samples/java-properties
. - Assicurati che javac sia presente nel percorso.
javac -version
- Esegui il seguente comando javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Crea un file JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Copia il file JAR nella directory apiproxy/resources/java. Questa è la posizione obbligatoria
per i file JAR di cui vuoi eseguire il deployment con un proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Esegui il deployment e chiama il proxy
Nella directory ./java-properties
è fornito uno script di deployment. Ma prima di
devi eseguire una configurazione rapida.
- da CD a
api-platform-samples/doc-samples/java-properties
- Il modo più semplice per eseguire il deployment del proxy è raggrupparlo in un file ZIP e caricarlo in un ambiente nella tua organizzazione Apigee. Consulta la sezione Creare un proxy API. Assicurati di utilizzare l'opzione Carica pacchetto proxy. Consulta anche Suggerimenti e trucchi per il caricamento del proxy API in un bundle di proxy nella community Apigee.
- Dopo aver eseguito il deployment del proxy, prova a chiamarlo:
curl https://$HOSTNAME/java-properties
Il proxy restituisce l'intestazione:
X-PROPERTY-HELLO: WORLD!
. Ricorda che nel , abbiamo aggiunto una coppia nome/valore proprietà"prop/WORLD!"
. Il callout Java retrieving il valore"WORLD!"
e lo imposta in un'intestazione denominataX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));