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

  1. 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"
  2. 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 y to.

        steps:
        - log:
            message: "Received request with body: ${body}"
        - unmarshal:
            json:
              library: Jackson
        - setBody:
            simple: '{"message": "Hello, ${body[name]}!"}'
        - to:
            uri: "log:info"
  3. 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}"
  4. 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
  5. 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]}!"}'
  6. 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"
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]