MuleSoft - Componentes principais e configuração
Uma das habilidades mais importantes do Mule é que ele pode executar roteamento, transformação e processamento com os componentes, por isso o arquivo de configuração do aplicativo Mule que combina vários elementos é muito grande.
A seguir estão os tipos de padrões de configuração fornecidos pelo Mule -
- Padrão de serviço simples
- Bridge
- Validator
- Proxy HTTP
- Proxy WS
Configurando o componente
No Anypoint Studio, podemos seguir as etapas abaixo para configurar um componente -
Step 1
Precisamos arrastar o componente que desejamos usar em nosso aplicativo Mule. Por exemplo, aqui usamos o componente ouvinte HTTP da seguinte maneira -
Step 2
Em seguida, clique duas vezes no componente para obter a janela de configuração. Para ouvinte HTTP, é mostrado abaixo -
Step 3
Podemos configurar o componente de acordo com os requisitos do nosso projeto. Digamos, por exemplo, que fizemos para o componente de ouvinte HTTP -
Os componentes principais são um dos blocos de construção importantes do fluxo de trabalho no aplicativo Mule. A lógica para processar um evento Mule é fornecida por esses componentes principais. No Anypoint Studio, para acessar esses componentes principais, você pode clicar no Core da Mule Palette conforme mostrado abaixo -
A seguir estão vários core components and their working in Mule 4 -
Eventos de negócios personalizados
Este componente principal é usado para a coleta de informações sobre fluxos, bem como processadores de mensagens que lidam com as transações de negócios no aplicativo Mule. Em outras palavras, podemos usar o componente Custom Business Event para adicionar o seguinte em nosso fluxo de trabalho -
- Metadata
- Indicadores-chave de desempenho (KPIs)
Como adicionar KPIs?
A seguir estão as etapas para adicionar KPIs em nosso fluxo no aplicativo Mule -
Step 1 - Siga Mula Palette → Core → Components → Custom Business Event, para adicionar o componente Custom Business Event a um fluxo de trabalho em seu aplicativo Mule.
Step 2 - Clique no componente para abri-lo.
Step 3 - Agora, precisamos fornecer valores para Nome de exibição e Nome do evento.
Step 4 - Para capturar informações da carga útil da mensagem, adicione KPIs da seguinte forma -
Dê um nome (chave) para o KPI ( rastreamento: elemento de metadados ) e um valor. O nome será usado na interface de pesquisa do Runtime Manager.
Forneça um valor que pode ser qualquer expressão de Mula.
Exemplo
A tabela a seguir consiste na lista de KPIs com nome e valor -
Nome | Expressão / Valor |
---|---|
Student RollNo | # [carga útil ['RollNo']] |
Nome do aluno | # [carga útil ['Nome']] |
Avaliação Dinâmica
Este componente principal é usado para selecionar dinamicamente um script no aplicativo Mule. Também podemos usar script hardcore por meio do Transform Message Component, mas usar o componente Dynamic Evaluate é a melhor maneira. Este componente principal funciona da seguinte maneira -
- Primeiramente, ele avalia uma expressão que deve resultar em outro script.
- Em seguida, ele avalia esse script para o resultado final.
Dessa forma, ele nos permite selecionar dinamicamente o script em vez de codificá-lo permanentemente.
Exemplo
A seguir está um exemplo de seleção de um script do banco de dados por meio de um parâmetro de consulta Id e armazenamento desse script em uma variável chamada MyScript . Agora, o componente de avaliação dinâmica acessará a variável para invocar os scripts para que possa adicionar uma variável de nome deUName parâmetro de consulta.
A configuração XML do fluxo é fornecida abaixo -
<flow name = "DynamicE-example-flow">
<http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
<db:select config-ref = "dbConfig" target = "myScript">
<db:sql>#["SELECT script FROM SCRIPTS WHERE ID =
$(attributes.queryParams.Id)"]
</db:sql>
</db:select>
<ee:dynamic-evaluate expression = "#[vars.myScript]">
<ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
</ee:dynamic-evaluate>
</flow>
O script pode usar variáveis de contexto como mensagem, carga útil, vars ou atributos. No entanto, se você deseja adicionar uma variável de contexto personalizada, você precisa fornecer um conjunto de pares de valores-chave.
Configurando Avaliação Dinâmica
A tabela a seguir fornece uma maneira de configurar o componente Dynamic Evaluate -
Campo | Valor | Descrição | Exemplo |
---|---|---|---|
Expressão | Expressão DataWeave | Ele especifica a expressão a ser avaliada no script final. | expression = "# [vars.generateOrderScript]" |
Parâmetros | Expressão DataWeave | Ele especifica pares de valores-chave. | # [{joiner: 'e', id: payload.user.id}] |
Componente de referência de fluxo
Se você deseja rotear o evento Mule para outro fluxo ou subfluxo e de volta ao mesmo aplicativo Mule, o componente de referência de fluxo é a opção certa.
Características
A seguir estão as características deste componente principal -
Este componente central nos permite tratar todo o fluxo referenciado como um único componente no fluxo atual.
Ele divide o aplicativo Mule em unidades discretas e reutilizáveis. Por exemplo, um fluxo está listando arquivos regularmente. Ele pode fazer referência a outro fluxo que processa a saída da operação de lista.
Dessa forma, em vez de anexar todas as etapas de processamento, podemos anexar Referências de Fluxo que apontam para o fluxo de processamento. A captura de tela abaixo mostra que o componente principal de referência de fluxo está apontando para um subfluxo denominadoProcessFiles.
Trabalhando
O funcionamento do componente Flow Ref pode ser compreendido com a ajuda do seguinte diagrama -
O diagrama mostra a ordem de processamento no aplicativo Mule quando um fluxo faz referência a outro fluxo no mesmo aplicativo. Quando o fluxo de trabalho principal no aplicativo Mule é acionado, o evento Mule percorre e executa o fluxo até que o evento Mule alcance a Referência de Fluxo.
Após atingir a Referência de Fluxo, o evento Mule executa o fluxo referenciado do início ao fim. Assim que o evento Mule termina de executar o Ref Flow, ele retorna ao fluxo principal.
Exemplo
Para melhor compreensão, let us use this component in Anypoint Studio. Neste exemplo, estamos pegando o ouvinte HTTP para GET uma mensagem, como fizemos no capítulo anterior. Portanto, podemos arrastar e soltar o componente e configurar. Mas, para este exemplo, precisamos adicionar um componente Subfluxo e definir o componente Payload sob ele, conforme mostrado abaixo -
Em seguida, precisamos configurar Set Payload, clicando duas vezes nele. Aqui estamos dando o valor, “Subfluxo executado” conforme mostrado abaixo -
Depois de configurar com êxito o componente de subfluxo, precisamos que o Componente de Referência de Fluxo seja definido após Definir Carga Útil do fluxo principal, que podemos arrastar e soltar da Paleta de Mulas, conforme mostrado abaixo -
Em seguida, ao configurar o componente de referência de fluxo, precisamos escolher o nome do fluxo na guia genérico conforme mostrado abaixo -
Agora, salve e execute este aplicativo. Para testar isso, vá para POSTMAN e digitehttp:/localhost:8181/FirstAPP na barra de URL, e você obterá a mensagem Subfluxo executado.
Componente Logger
O componente principal chamado logger nos ajuda a monitorar e depurar nosso aplicativo Mule, registrando informações importantes como mensagens de erro, notificações de status, cargas úteis, etc. No AnyPoint Studio, eles aparecem no Console.
Vantagens
A seguir estão algumas vantagens do Componente Logger -
- Podemos adicionar esse componente central em qualquer lugar do fluxo de trabalho.
- Podemos configurá-lo para registrar uma string especificada por nós.
- Podemos configurá-lo para a saída de uma expressão DataWeave escrita por nós.
- Também podemos configurá-lo para qualquer combinação de strings e expressões.
Exemplo
O exemplo abaixo exibe a mensagem “Hello World” no Set Payload em um navegador e registra a mensagem também.
A seguir está a configuração XML do fluxo no exemplo acima -
<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
<set-payload value="Hello World"/>
<logger message = "#[payload]" level = "INFO"/>
</flow>
Transferir componente de mensagem
O Transform Message Component, também chamado de componente Transfer, nos permite converter os dados de entrada em um novo formato de saída.
Métodos para construir a transformação
Podemos construir nossa transformação com a ajuda dos dois métodos a seguir -
Drag-and-Drop Editor (Graphical View)- Este é o primeiro e mais utilizado método para construir nossa transformação. Nesse método, podemos usar o mapeador visual desse componente para arrastar e soltar os elementos da estrutura de dados de entrada. Por exemplo, no diagrama a seguir, duas visualizações em árvore mostram as estruturas de metadados esperadas de entrada e saída. As linhas que conectam a entrada ao campo de saída representam o mapeamento entre duas visualizações em árvore.
Script View- O mapeamento visual da Transformação também pode ser representado com a ajuda do DataWeave, uma linguagem para código Mule. Podemos fazer a codificação para algumas transformações avançadas como agregação, normalização, agrupamento, junção, particionamento, dinamização e filtragem. O exemplo é dado abaixo -
Este componente principal basicamente aceita metadados de entrada e saída para uma variável, um atributo ou carga útil de mensagem. Podemos fornecer recursos específicos de formato para o seguinte -
- CSV
- Schema
- Esquema de arquivo simples
- JSON
- Classe de objeto
- Tipo Simples
- Esquema XML
- Nome e tipo da coluna do Excel
- Nome e tipo da coluna de largura fixa