Skip to content

Mgrsantos/api-bank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 API Bank

API REST bancária desenvolvida com Spring Boot, simulando operações reais de bancos como Itaú e Santander.

Java Spring Boot Maven H2 Status


📋 Sobre o projeto

A API Bank é uma API RESTful que simula o núcleo de um sistema bancário real. O projeto foi desenvolvido com foco em boas práticas de arquitetura, separando responsabilidades em camadas bem definidas — do jeito que grandes bancos fazem internamente.


✨ Funcionalidades

  • ✅ Cadastro de clientes (com validação de CPF único)
  • ✅ Criação de contas bancárias vinculadas a clientes
  • ✅ Depósito em conta
  • ✅ Saque com validação de saldo insuficiente
  • ✅ Transferência entre contas
  • ✅ Consulta de saldo

🏗️ Arquitetura

O projeto segue o padrão de arquitetura em camadas:

src/
└── main/
    └── java/
        └── com.bank.api_bank_g/
            ├── controller/      → Endpoints REST (ClienteController, ContaController)
            ├── service/         → Regras de negócio (ClienteService, ContaService)
            ├── repository/      → Acesso ao banco de dados (JPA Repositories)
            └── model/           → Entidades (Cliente, Conta)

🛠️ Tecnologias utilizadas

Tecnologia Versão Descrição
Java 17 Linguagem principal
Spring Boot 3.x Framework principal
Spring Web - Criação dos endpoints REST
Spring Data JPA - Comunicação com o banco
H2 Database - Banco de dados em memória
Lombok - Redução de código boilerplate
Maven - Gerenciador de dependências

🚀 Como rodar o projeto

Pré-requisitos

  • Java 17+
  • Maven
  • IntelliJ IDEA (recomendado)

Passo a passo

# Clone o repositório
git clone https://github.com/Mgrsantos/api-bank.git

# Entre na pasta do projeto
cd api-bank

# Rode o projeto
./mvnw spring-boot:run

A API estará disponível em: http://localhost:8080


📡 Endpoints

👤 Clientes

Método Rota Descrição
POST /clientes Cadastrar novo cliente
GET /clientes Listar todos os clientes
GET /clientes/{id} Buscar cliente por ID

Exemplo de cadastro de cliente:

POST /clientes
{
    "nome": "Gabriela Santos",
    "cpf": "123.456.789-00",
    "email": "gabriela@email.com"
}

🏦 Contas

Método Rota Descrição
POST /contas Criar conta para um cliente
GET /contas/{id} Consultar saldo
POST /contas/{id}/depositar Realizar depósito
POST /contas/{id}/sacar Realizar saque
POST /contas/transferir Transferir entre contas

Exemplos:

# Criar conta
POST /contas?clienteId=1&numeroConta=0001-1

# Depositar R$500
POST /contas/1/depositar?valor=500

# Sacar R$200
POST /contas/1/sacar?valor=200

# Transferir R$100 da conta 1 para conta 2
POST /contas/transferir?idOrigem=1&idDestino=2&valor=100

🗄️ Banco de dados

O projeto utiliza o H2 Database (banco em memória), ideal para desenvolvimento e testes.

Acesse o console do H2 em: http://localhost:8080/h2-console

Campo Valor
JDBC URL jdbc:h2:mem:bankdb
Username sa
Password (vazio)

📌 Próximas melhorias

  • Autenticação com Spring Security e JWT
  • Histórico de transações
  • Migração para PostgreSQL
  • Documentação com Swagger/OpenAPI
  • Testes unitários com JUnit

👩‍💻 Autora

Gabriela Rondon Feito com 💜 por Gabriela Santos

GitHub

About

API bancária com Spring Boot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages