Integração com Log

Script do fluxo

Considere o script do fluxo abaixo.
Consulte também o resumo e a descrição dos elementos para maior compreensão.

- 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"

Resumo

  • Recepção da requisição: o fluxo começa com a recepção de uma requisição POST no endpoint /hello.

  • Log da requisição: o corpo da requisição recebida é registrado no log com a mensagem "Received request with body: ${body}".

  • Transformação da resposta: o corpo da mensagem é transformado em um objeto JSON com uma mensagem personalizada que inclui o valor do campo name da requisição.

  • Log da resposta: o novo corpo da mensagem é registrado no log usando o endpoint log:info.

Descrição dos elementos

  1. from

    Define a origem do fluxo, ou seja, onde o Camel deve começar a processar as mensagens.

    • uri

      Especifica o URI do endpoint REST. Neste caso, estamos definindo um endpoint que aceita requisições POST em /hello.

      - from:
          uri: "rest:post:/hello"
  2. steps

    Dentro do bloco steps, definimos as várias etapas que o Camel deve executar quando uma mensagem (ou requisição) chega no endpoint REST.
    Neste exemplo, temos três ações que serão executadas pelos componentes: log, setBody e 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 uma mensagem no log.

    • message

      A mensagem a ser registrada no log. ${body} é uma expressão Camel que representa o corpo da mensagem atual. Neste caso, registramos "Received request with body: ${body}" para indicar que a requisição foi recebida e mostrar o corpo da requisição.

      - log:
          message: "Received request with body: ${body}"
  4. unmarshal

    Converte (ou desserializa) dados de um formato específico em objetos Java. Isso significa que ele transforma dados em um formato legível por humanos ou máquinas (como JSON, XML, CSV, etc.) em uma estrutura de dados que pode ser facilmente manipulada dentro do Camel.

    • json

      • library: Jackson

        No exemplo, o componente unmarshal converte o corpo da solicitação de JSON para um objeto Java usando a biblioteca Jackson.

        - unmarshal:
                json:
                  library: Jackson
  5. setBody

    Este componente define o corpo da mensagem atual. Estamos transformando o corpo da mensagem recebida para um novo corpo de resposta.

    • simple

      Define uma expressão simples (Simple Expression Language - SEL) para o novo corpo da mensagem. Neste exemplo, estamos criando um objeto JSON com uma mensagem que inclui o valor do campo name do corpo da requisição recebida.

      - setBody:
          simple: '{"message": "Hello, ${body[name]}!"}'
  6. to

    Este componente envia a mensagem para um endpoint especificado.

    • uri

      O URI do endpoint para onde a mensagem será enviada. log:info é um endpoint especial do Camel que registra a mensagem no log com o nível de informação (INFO).

      - to:
          uri: "log:info"
Thanks for your feedback!
EDIT

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