A Bank Account API é um projeto simples desenvolvido para fins de estudo, com o objetivo de praticar a criação de APIs REST com Flask, autenticação JWT e uma arquitetura mais organizada.
- Cadastro de usuários
- Login com geração de token JWT
- Rota protegida para edição de saldo
- Middleware de autenticação
- Validações e tratamento de erros personalizados
- Python 3.12
- Flask
- PyJWT
-
Clone o repositório:
git clone <url-do-repositorio> cd BankAccountAPI
-
Crie e ative o ambiente virtual:
python3 -m venv .venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Execute o projeto:
python3 run.py
Algumas rotas exigem autenticação com JWT. Para fazer uma requisição autenticada corretamente, é necessário seguir os seguintes passos:
-
Auth (aba "Authorization" do Postman):
- Tipo: Bearer Token
- Valor: o token JWT obtido no login
-
Params:
- user_id: ID do usuário autenticado
-
Headers:
- uid: ID da conta que será alterada
-
Body (JSON):
{
"new_balance": 100.0
}
Exemplo de chamada PATCH /account/balance com tudo configurado corretamente.
Este projeto foi criado para praticar:
-
Organização de código por camadas (routes, controllers, views, middlewares)
-
Uso de tokens JWT com Flask
-
Boas práticas de estrutura e tratamento de erros
Este projeto foi desenvolvido para fins educacionais e pode ser melhorado de diversas maneiras. Fique à vontade para sugerir melhorias, corrigir bugs ou adicionar novas funcionalidades.
- Fork o repositório.
- Crie uma branch para a sua feature (
git checkout -b feature/nome-da-feature
). - Faça as modificações e commit (
git commit -am 'Adicionando nova feature'
). - Push na branch (
git push origin feature/nome-da-feature
). - Abra um Pull Request.
Projeto feito com fins educacionais. Ainda pode conter melhorias ou partes inacabadas.