Este workspace agora contem duas entregas diferentes do tema bancario:
- Uma versao em console com programacao orientada a objetos.
- Uma API bancaria assincrona com FastAPI e autenticacao JWT.
Arquivo principal: sistema_bancario.py
- Cadastro de clientes
- Criacao de contas correntes
- Deposito
- Saque com limite por operacao e quantidade de saques
- Extrato
- Listagem de contas
python sistema_bancario.pyOu, no Windows com o ambiente virtual deste projeto:
c:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe sistema_bancario.pyEntrada da aplicacao: api/main.py
- Cadastro de usuario com CPF e senha
- Login com JWT
- Criacao e listagem de contas do usuario autenticado
- Deposito e saque com validacoes de saldo, limite por saque e quantidade maxima de saques
- Consulta de transacoes e extrato por conta
- Documentacao automatica em
/docs
api/main.py: inicializacao da aplicacao FastAPIapi/domain.py: entidades e regras de negocioapi/storage.py: armazenamento em memoriaapi/auth.py: hash de senha e tokens JWTapi/schemas.py: modelos de entrada e saidaapi/routes/: rotas da API
c:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe -m pip install -r requirements.txtc:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe -m uvicorn api.main:app --reload- Acesse
http://127.0.0.1:8000/docs. - Use
POST /auth/registerpara cadastrar um usuario. - Use
POST /auth/logincomusername=CPFepassword=senha. - Copie o
access_tokenretornado e clique emAuthorizena documentacao. - Crie uma conta com
POST /accounts/. - Execute deposito, saque e consultas de extrato.
- A API usa armazenamento em memoria para simplificar a entrega.
- Ao reiniciar o servidor, os dados cadastrados serao perdidos.
- O projeto em console foi mantido intacto como referencia do desafio anterior.