Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
¿Qué es un texto destacado de Java?
Si es la primera vez que usas textos destacados de Java, te recomendamos comenzar con Crea un texto destacado de Java.
Usa propiedades en un texto destacado de Java
Las propiedades te permiten especificar pares nombre-valor en una política de texto destacado de Java a la que puedes acceder desde tu código Java en el entorno de ejecución. Debes especificar un valor de string literal para cada propiedad, no puedes hacer referencia a variables de flujo en este elemento.
Veamos un ejemplo simple de texto destacado de Java que usa propiedades. En este ejemplo, creamos un proxy con una política de texto destacado de Java. La política usa el elemento <Properties>
para especificar un par nombre/valor. En el código de Java, recuperamos el valor y lo usamos para configurar un encabezado de respuesta.
Descarga el proyecto
Para simplificar el proceso, puedes descargar este proyecto del repositorio api-platform-samples de Apigee en GitHub.
- Descarga o clona api-platform-samples en tu sistema.
- En un editor de código o terminal de tu elección, ve al proyecto
api-platform-samples/doc-samples/java-properties
.
La política de texto destacado de Java
La política usa el elemento <Properties>
. Este elemento te permite especificar pares nombre-valor. En el entorno de ejecución, tu código de Java puede acceder a los valores de las propiedades especificadas en la política, como veremos pronto.
<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>
El código Java de muestra
El código Java de esta muestra te indica cómo recuperar una propiedad que se especificó en la política de texto destacado de Java. En el proyecto de muestra, puedes encontrar el código fuente en java-properties/callout/src/main/java/JavaProperties.java
. Repasaremos los pasos para compilar y, luego, implementar este código más adelante en este tema.
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 tu código con Maven
El proyecto está configurado para que puedas compilar con Maven. Si quieres usar javac
, también incluiremos un ejemplo.
- Asegúrate de tener instalado Maven:
mvn -version
- Ejecuta la siguiente secuencia de comandos
java-properties/buildsetup.sh
. Esta secuencia de comandos instala las dependencias JAR necesarias en tu repositorio local de Maven. - cd al directorio
java-properties/callout
. - Ejecuta Maven:
mvn clean package
- Si lo deseas, verifica que el archivo JAR
edge-custom-policy-java-properties.jar
se copió enjava-properties/apiproxy/resources/java
. Esta es la ubicación requerida para los archivos JAR que deseas implementar con un proxy.
Compila con javac (opcional)
Si quieres usar javac
para compilar el código, puedes hacer algo similar a lo siguiente (desde el directorio java-properties
). Los archivos JAR necesarios se proporcionan en el directorio java-properties/lib
.
- cd a
api-platform-samples/doc-samples/java-properties
. - Asegúrate de tener javac en tu ruta de acceso.
javac -version
- Ejecuta el siguiente 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 archivo JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Copia el archivo JAR al directorio apiproxy/resources/java. Esta es la ubicación requerida para los archivos JAR que deseas implementar con un proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Implementa y llama al proxy
Se proporciona una secuencia de comandos de implementación en el directorio ./java-properties
. Pero antes de ejecutarla, debes hacer una configuración rápida.
- Ve a
api-platform-samples/doc-samples/java-properties
- Si aún no lo hiciste, abre el archivo
../../setup/setenv.sh
y edítalo. tal como se indica en la información de tu cuenta de Apigee: tu nombre de usuario (la dirección de correo electrónico asociado a tu cuenta), el nombre de tu organización y el dominio que usas para hacer que las APIs a las de administración de datos. Por ejemplo, en la nube perimetral, el dominio eshttps://api.enterprise.apigee.com
; Sin embargo, tu dominio puede ser diferente si estás con la nube privada perimetral. - Guarda el archivo
setenv.sh
. - Ejecuta la secuencia de comandos de implementación:
./deploy.sh
- Si la implementación se realiza correctamente, ejecuta la secuencia de comandos de invocación:
./invoke.sh
La secuencia de comandos de invocación llama a un comando cURL que se ve de la siguiente manera:
curl http://$org-$env.$api_domain/java-properties
El proxy muestra el encabezado:
X-PROPERTY-HELLO: WORLD!
. Recuerda que, en la política, agregamos un par nombre/valor de propiedad"prop/WORLD!"
. El texto destacado de Java recupera el valor"WORLD!"
y lo configura en un encabezado llamadoX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));