Banco Tayfly é uma API RESTful para um sistema de banco digital, desenvolvida com Java e Spring Boot. O projeto simula as operações bancárias essenciais, como criação de contas, consulta de saldo, depósitos, saques e transferências, seguindo as melhores práticas de desenvolvimento de APIs.
Status do Projeto: 🏁 Concluído.
A API expõe os seguintes endpoints para interação com o sistema bancário:
| Método HTTP | Endpoint | Descrição |
|---|---|---|
POST |
/clientes |
Cria um novo cliente no banco. |
GET |
/clientes/{id} |
Busca os dados de um cliente específico. |
GET |
/contas/{numeroConta}/saldo |
Consulta o saldo de uma conta. |
POST |
/contas/deposito |
Realiza um depósito em uma conta. |
POST |
/contas/saque |
Realiza um saque de uma conta. |
POST |
/contas/transferencia |
Transfere fundos entre duas contas. |
GET |
/contas/{numeroConta}/extrato |
Gera o extrato de transações de uma conta. |
Este projeto foi construído com um conjunto de tecnologias robustas para o desenvolvimento backend:
- Linguagem: Java 17
- Framework: Spring Boot 3
- Persistência de Dados: Spring Data JPA (Hibernate)
- Banco de Dados: H2 Database (Em memória)
- Gerenciador de Dependências: Maven
- Utilitários: Lombok
- Documentação (Opcional): Integração com Swagger/OpenAPI para documentação interativa.
Antes de começar, você vai precisar ter as seguintes ferramentas instaladas em sua máquina:
- JDK (Java Development Kit) - Versão 17 ou superior.
- Maven - Versão 3.8 ou superior.
-
Clone o repositório:
git clone https://github.com/FlowDev1994/banco-tayfly-springboot.git
-
Acesse o diretório do projeto:
cd banco-tayfly-springboot -
Compile e empacote o projeto com Maven:
mvn clean install
-
Execute a aplicação:
mvn spring-boot:run
-
A API estará disponível em
http://localhost:8080. Você pode usar ferramentas como Postman ou Insomnia para testar os endpoints.
Este projeto foi fundamental para aplicar e aprofundar meus conhecimentos na arquitetura de sistemas backend:
- Desenvolvimento de APIs RESTful: Criação de endpoints seguindo os padrões REST.
- Arquitetura em Camadas: Implementação clara da separação de responsabilidades (Controller, Service, Repository).
- Injeção de Dependências: Uso do padrão de Inversão de Controle do Spring para gerenciar componentes.
- Mapeamento Objeto-Relacional (ORM): Utilização do Spring Data JPA e Hibernate para abstrair a comunicação com o banco de dados.
- Regras de Negócio: Implementação da lógica para as operações bancárias, garantindo a consistência dos dados.