Linguagens de expressão
Uma linguagem de expressão é uma maneira de definir condições ou de manipular mensagens de forma declarativa. Elas são usadas para avaliar e manipular dados dentro de uma mensagem, permitindo a criação de rotas mais complexas e flexíveis.
Veja como adicionar uma linguagem de expressão diretamente pelo formulário de um EIP na aba Diagram:

Aqui estão as linguagens de expressão suportadas pelo Sensedia Integrations:
| Os exemplos mostram o uso das linguagens no componente Choice, mas podem ser usadas em qualquer contexto que suporte linguagens. |
-
Constant: retorna um valor constante.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
constant:
expression: 'sensedia'
steps:
- log:
message: 'When ativado'
-
ExchangeProperty: acessa propriedades do Exchange.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
exchangeProperty:
expression: 'myproperty'
steps:
- log:
message: 'When ativado'
-
Groovy: usa scripts Groovy para manipular mensagens.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
groovy:
expression: 'Math.random() > 0.5'
steps:
- log:
message: 'When ativado'
-
Header: acessa valores dos cabeçalhos das mensagens.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
header:
expression: 'myheader'
steps:
- log:
message: 'When ativado'
-
JQ: usa a linguagem JQ para consultar e manipular JSON.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
jq:
expression: '.store.book.price < 30'
steps:
- log:
message: 'When ativado'
-
JSONPath: similar ao XPath, mas para JSON.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
jsonpath:
expression: $.model.Details[?(@['Random nonsense'] == 'New today')]
steps:
- log:
message: 'When ativado'
-
OGNL: usa expressões Object-Graph Navigation Language para acessar dados.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
ognl:
expression: 'request.headers.foo == "bar"'
steps:
- log:
message: 'When ativado'
-
Simple: uma linguagem simples para expressões e manipulações.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
simple:
expression: ${header.id} == 2
steps:
- log:
message: 'When ativado'
-
XPath: usada para consultar e manipular XML.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
xpath:
expression: '/person/@id > 30'
steps:
- log:
message: 'When ativado'
-
XQuery: usa XQuery para consultar e manipular XML.
- from:
uri: rest:post:/demo
parameters: {}
steps:
- choice:
otherwise:
steps:
- log:
message: 'Otherwise ativado'
when:
- expression:
xquery:
expression: '//foo/id > 30'
steps:
- log:
message: 'When ativado'
| Para mais detalhes, acesse a documentação oficial do Apache Camel. |
Share your suggestions with us!
Click here and then [+ Submit idea]