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
-
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"
-
-
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
eto
.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 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}"
-
-
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
-
-
-
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]}!"}'
-
-
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"
-
Share your suggestions with us!
Click here and then [+ Submit idea]