Desafio técnico proposto pelo Itaú Unibanco para avaliação de habilidades em desenvolvimento e engenharia de software.
Este projeto consiste em uma API REST construída com Spring Boot para registrar transações e calcular estatísticas dos últimos 60 segundos, com armazenamento em memória e sem uso de banco de dados.
- Java 17
- Spring Boot
- API REST
- Java Time API (
OffsetDateTime
) DoubleSummaryStatistics
- Concurrent Collections (
ConcurrentLinkedDeque
) - Validação com Bean Validation
- Lombok
- JUnit (testes)
- Maven
Registra uma nova transação com valor
e dataHora
.
{
"valor": 123.45,
"dataHora": "2025-06-22T03:20:00Z"
}
valor deve ser maior ou igual a 0
dataHora não pode estar no futuro
valor e dataHora são obrigatórios
201 Created – Transação registrada com sucesso
422 Unprocessable Entity – Transação inválida
400 Bad Request – JSON inválido
Remove todas as transações armazenadas na memória.
200 OK – Todas as transações foram apagadas com sucesso
Retorna estatísticas das transações ocorridas nos últimos 60 segundos.
{
"count": 5,
"sum": 250.00,
"avg": 50.00,
"min": 20.00,
"max": 80.00
}
Se nenhuma transação for registrada nos últimos 60 segundos, os valores retornados são todos 0.
📝 Como rodar localmente
- Clone o repositório
git clone https://github.com/seu-usuario/desafio-itau-backend.git
cd desafio-itau-backend
- Compile e execute
Copiar
Editar
./mvnw spring-boot:run
- Acesse a API
Copiar
Editar
http://localhost:8080/
Desenvolvido por