Este projeto demonstra leitura, transformação e organização de dados utilizando DataWeave no MuleSoft através de uma API simples.
A ideia do exemplo é usar uma analogia de cadastro de alunos de uma escola para explicar operações comuns em integrações, como leitura de payloads, transformação de dados e filtragem de registros.
Nesse cenário, o DataWeave atua como a secretaria da escola, responsável por organizar as informações recebidas e preparar os dados para outros sistemas.
O fluxo da API executa as seguintes etapas:
- Recebe uma requisição HTTP com uma lista de alunos
- Valida se o payload possui a estrutura esperada
- Processa os dados com DataWeave
- Aplica transformações como:
- leitura da lista de alunos
- extração de nomes
- filtragem por série
- contagem total de alunos
- Retorna uma resposta estruturada com os dados processados
POST /escola/alunos
URL local:
[http://localhost:8081/escola/alunos](http://localhost:8081/escola/alunos)
{
"alunos": [
{ "nome": "Ana", "idade": 14, "serie": "9º" },
{ "nome": "Carlos", "idade": 15, "serie": "1º" },
{ "nome": "Mariana", "idade": 14, "serie": "9º" }
]
}curl --location 'http://localhost:8081/escola/alunos' \
--header 'Content-Type: application/json' \
--data '{
"alunos":[
{"nome":"Ana","idade":14,"serie":"9º"},
{"nome":"Carlos","idade":15,"serie":"1º"},
{"nome":"Mariana","idade":14,"serie":"9º"}
]
}'{
"status": "success",
"mensagem": "Lista de alunos processada com sucesso",
"dados": {
"nomes": [
"Ana",
"Carlos",
"Mariana"
],
"alunosDoNono": [
"Ana",
"Mariana"
],
"totalAlunos": 3
}
}- MuleSoft
- DataWeave 2.0
- HTTP Listener
- Maven
| Tecnologia | Versão |
|---|---|
| Mule Runtime | 4.6.x |
| Java | 17 |
| Maven | 3.9+ |
| DataWeave | 2.0 |
Instale as seguintes ferramentas:
- Java 17
- Maven 3.9+
- Anypoint Studio
git clone https://github.com/seu-usuario/mulesoft-dataweave-school-api.git- Abra o Anypoint Studio
- Clique em:
File → Import → Anypoint Studio Project from File System
- Selecione a pasta do projeto
Execute a aplicação pelo Studio ou via Maven:
mvn clean install
mvn mule:runHTTP Listener
│
▼
Validação do payload
│
▼
Transformação com DataWeave
│
▼
Construção da resposta
Este projeto foi criado para demonstrar de forma simples:
- leitura de dados com DataWeave
- transformação de payloads
- filtragem de registros
- construção de respostas em APIs MuleSoft
A analogia com o cadastro de alunos ajuda a entender como o MuleSoft organiza dados recebidos de diferentes sistemas.
| Operação DataWeave | Analogia na escola |
|---|---|
payload.alunos |
abrir o livro de matrícula |
map |
fazer chamada dos alunos |
filter |
separar alunos por série |
sizeOf |
contar alunos matriculados |
Contribuições são bem-vindas.
Se quiser melhorar exemplos de DataWeave, integrações ou arquitetura MuleSoft, fique à vontade para abrir um PR.
Temo um dataweave.jar pode importar ele no seu anypoint studio