Set Body

O EIP Set Body define ou modifica o corpo da mensagem.

Parâmetros

Parâmetro Descrição Valor padrão Tipo

Expression

Define o valor que será configurado no corpo da mensagem (body).

ExpressionDefinition

Expression

A expression permite calcular ou definir valores dinamicamente durante o processamento de mensagens no fluxo de integração. Ela é uma forma de configurar comportamentos que podem variar de acordo com o contexto da mensagem em trânsito.

A expressão está organizada em dois níveis hierárquicos que permitem que a estrutura seja mais extensível e adaptável a diferentes contextos:

  • Primeiro nível: especifica o tipo de lógica que será aplicada (constant, jsonPath, xPath etc.).

  • Segundo nível: define o valor efetivo da expressão, ou seja, o dado que será atribuído ao corpo da mensagem.

Tipos comuns de expressions

  • constant: define um valor fixo, útil para mensagens estáticas. No exemplo, sempre define o corpo da mensagem como o JSON estático {"status": "error"}.

- setBody:
    expression:
      constant:
        expression: '{"status": "error"}'
  • jsonpath: extrai dados do corpo da mensagem quando ele está em formato JSON. No exemplo, extrai o valor localizado em $.data.attributes do JSON no corpo da mensagem.

- setBody:
    expression:
      jsonpath:
        path: '$.data.attributes'
  • xpath: extrai informações quando o corpo da mensagem está em formato XML. No exemplo, seleciona o nó XML correspondente a /response/body/item do corpo da mensagem.

- setBody:
    expression:
      xpath:
        path: '/response/body/item'
  • script: permite usar linguagens de script (JavaScript, Groovy, etc.) para criar um corpo dinâmico. No exemplo, executa um script JavaScript para gerar dinamicamente o corpo da mensagem.

- setBody:
    expression:
      script:
        language: 'javascript'
        expression: 'return {"status": "ok"};'
  • binary: define um corpo binário, útil para enviar arquivos ou dados não textuais. No exemplo, configura o corpo da mensagem como dados codificados em Base64.

- setBody:
    expression:
      binary:
        content: 'base64encodedData'

Exemplo

- setBody:
    id: setBody-2360
    expression:
      simple:
        expression: "<request><id>${header.id}</id></request>"
  • O trecho de código define o corpo da mensagem como um XML dinâmico contendo um elemento <id>.

  • O parâmetro expression utiliza a linguagem simples, que permite inserir valores dinâmicos e realizar manipulações simples de strings.

  • A expressão ${header.id} insere no XML o valor do cabeçalho (header) chamado "id".

  • Por exemplo, se o cabeçalho "id" tiver o valor 123, o corpo da mensagem será configurado assim:

    <request><id>123</id></request>
Thanks for your feedback!
EDIT

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