API REST desenvolvida em Java + Spring Boot para controle de transações financeiras pessoais, permitindo cadastro, listagem, filtro por categoria e geração de resumo financeiro.
- Java 17
- Spring Boot
- Spring Data JPA
- Hibernate
- Lombok
- MySQL / PostgreSQL (ou qualquer banco compatível com JPA)
- Maven
O projeto segue uma arquitetura em camadas:
- Controller → Recebe requisições HTTP
- Service → Contém regras de negócio
- Repository → Comunicação com o banco de dados
- Entity → Representação das tabelas
- DTO → Transporte de dados entre camadas
Representa uma transação financeira no banco de dados.
Campos:
id(Long)descricao(String)valor(Double)categoria(Enum)tipo(ENTRADA / SAIDA)
Usado para transportar dados da transação entre camadas e para o cliente.
Campos:
descricaovalorcategoriatipo
DTO responsável por retornar dados consolidados.
Campos:
totalEntradatotalSaidasaldo
- DESPESAS
- LAZER
- SALARIO
- ASSINATURAS
- URGENCIA
- SAIDA
- ENTRADA
- SAIDA
GET /transacoes
Retorna todas as transações cadastradas.
POST /transacoes
Body (JSON):
{
"descricao": "Salário",
"valor": 5000,
"categoria": "SALARIO",
"tipo": "ENTRADA"
}GET /transacoes/filtro?categoria=LAZER
DELETE /transacoes/{id}
GET /transacoes/resumo
Resposta:
{
"totalEntrada": 5000,
"totalSaida": 1200,
"saldo": 3800
}- Transações são separadas por tipo: ENTRADA ou SAIDA
- O resumo financeiro é calculado com base nas somas do banco
- Caso não existam registros, os valores retornam
0.0
- Clone o repositório
- Configure o
application.properties - Rode a aplicação:
mvn spring-boot:run- Acesse:
http://localhost:8080/transacoes
- Projeto ideal para estudo de CRUD com Spring Boot
- Estrutura pronta para expansão (auth, usuários, relatórios)
- Código organizado e seguindo boas práticas
Gustavo Rodrigues