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.

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.
Thanks for your feedback!
EDIT

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