API REST para registro e análise de transações financeiras em tempo real — solução do desafio técnico oficial do Itaú Unibanco.
O itauproject é a solução do Desafio Técnico de Backend do Itaú Unibanco, desenvolvida com Java 17 e Spring Boot 3.3.2.
A API recebe transações financeiras via JSON, armazena os dados em memória (sem banco de dados externo) e retorna estatísticas calculadas sobre as transações realizadas nos últimos 60 segundos — atendendo integralmente aos requisitos do desafio.
- Registro de transações financeiras via JSON
- Cálculo de estatísticas em tempo real (últimos 60 segundos)
- Limpeza de todas as transações registradas
- Validação de dados de entrada com Bean Validation
- Documentação interativa via Swagger UI
Registra uma nova transação financeira.
Request Body:
{
"valor": 123.45,
"dataHora": "2020-08-07T12:34:56.789-03:00"
}Respostas:
| Status | Descrição |
|---|---|
201 |
Transação criada com sucesso |
422 |
Dados inválidos (valor negativo ou data futura) |
400 |
JSON malformado |
Retorna as estatísticas das transações dos últimos 60 segundos.
Response Body:
{
"count": 10,
"sum": 1234.50,
"avg": 123.45,
"min": 10.00,
"max": 200.00
}| Campo | Tipo | Descrição |
|---|---|---|
count |
long |
Total de transações nos últimos 60s |
sum |
double |
Soma dos valores das transações |
avg |
double |
Média dos valores das transações |
min |
double |
Menor valor entre as transações |
max |
double |
Maior valor entre as transações |
Remove todas as transações registradas em memória.
Resposta: 200 OK
- Java >= 17
- Gradle >= 8.x (ou use o wrapper
./gradlewincluso no projeto)
- Java 17 — Linguagem principal
- Spring Boot 3.3.2 — Framework para criação da API REST
- Spring Validation — Validação de dados de entrada
- Lombok — Redução de código boilerplate
- SpringDoc OpenAPI 2.6.0 — Documentação via Swagger UI
- JUnit & Mockito — Testes unitários e de integração
- Gradle — Gerenciamento de dependências e build
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.