Integración con Log
Script del flujo
Considere el siguiente script del flujo. Consulte también el resumen y la descripción de los elementos para mayor comprensión.
- from:
uri: "rest:post:/hello"
steps:
- log:
message: "Received request with body: ${body}"
- unmarshal:
json:
library: Jackson
- setBody:
simple: '{"message": "Hello, ${body[name]}!"}'
- to:
uri: "log:info"
Resumen
-
Recepción de la solicitud: El flujo comienza con la recepción de una solicitud POST en el endpoint
/hello
. -
Registro de la solicitud: El cuerpo de la solicitud recibida se registra en el log con el mensaje "Received request with body: ${body}".
-
Transformación de la respuesta: El cuerpo del mensaje se transforma en un objeto JSON con un mensaje personalizado que incluye el valor del campo
name
de la solicitud. -
Registro de la respuesta: El nuevo cuerpo del mensaje se registra en el log usando el endpoint
log:info
.
Descripción de los elementos
-
from
Define el origen del flujo, es decir, dónde debe comenzar Camel a procesar los mensajes.
-
uri
Especifica el URI del endpoint REST. En este caso, estamos definiendo un endpoint que acepta solicitudes POST en
/hello
.- from: uri: "rest:post:/hello"
-
-
steps
Dentro del bloque steps, definimos las varias etapas que Camel debe ejecutar cuando un mensaje (o solicitud) llega al endpoint REST. En este ejemplo, tenemos tres acciones que serán ejecutadas por los componentes:
log
,setBody
yto
.steps: - log: message: "Received request with body: ${body}" - unmarshal: json: library: Jackson - setBody: simple: '{"message": "Hello, ${body[name]}!"}' - to: uri: "log:info"
-
log
Este componente registra un mensaje en el log.
-
message
El mensaje a registrar en el log.
${body}
es una expresión Camel que representa el cuerpo del mensaje actual. En este caso, registramos "Received request with body: ${body}" para indicar que la solicitud fue recibida y mostrar el cuerpo de la solicitud.- log: message: "Received request with body: ${body}"
-
-
unmarshal
Convierte (o deserializa) datos de un formato específico en objetos Java. Esto significa que transforma datos en un formato legible por humanos o máquinas (como JSON, XML, CSV, etc.) en una estructura de datos que puede ser fácilmente manipulada dentro de Camel.
-
json
-
library: Jackson
En el ejemplo, el componente
unmarshal
convierte el cuerpo de la solicitud de JSON a un objeto Java usando la biblioteca Jackson.- unmarshal: json: library: Jackson
-
-
-
setBody
Este componente define el cuerpo del mensaje actual. Estamos transformando el cuerpo del mensaje recibido a un nuevo cuerpo de respuesta.
-
simple
Define una expresión simple (Simple Expression Language - SEL) para el nuevo cuerpo del mensaje. En este ejemplo, estamos creando un objeto JSON con un mensaje que incluye el valor del campo
name
del cuerpo de la solicitud recibida.- setBody: simple: '{"message": "Hello, ${body[name]}!"}'
-
-
to
Este componente envía el mensaje a un endpoint especificado.
-
uri
El URI del endpoint al que se enviará el mensaje.
log:info
es un endpoint especial de Camel que registra el mensaje en el log con el nivel de información (INFO).- to: uri: "log:info"
-
Share your suggestions with us!
Click here and then [+ Submit idea]