flask-api-users
Api para gerenciamento de usuários e administradores com Flask Framework, MongoDB e autenticação JWT.
Os administradores podem gerenciar usuarios cadastrados no micro serviço.
Os usuários pode ser qualquer ator, como por exemplo customers, que necessita se autenticar e ter acesso ao perfil, configurações e etc...
Para autenticação utilizamos o JWT tanto para admins quanto para users.
Crie MongoDB
docker run -itd --name mongo-latest -p 27017:27017 --network local-containers mongo
Setup com virtualenv
Inicializar o virtualenv python3 -m venv venv
e em seguida ativar o virtualenv source venv/bin/activate
Se houver o poetry
instalado pode executar poetry install
ou instalar via pip pip install -r requirements/base.txt
Excute a aplicação de dev
Necessário que o mongodb esteja executando
$ python run.py
ou
$ flask run --host=0.0.0.0 --port=8080 --debugger
Criar um superusuario para executar os endpoints
Via local
$ flask createsuperuser admin [email protected] teste123
Excute a aplicação via docker
Primeiro faço um build da minha imagem
$ docker build -t users .
Em seguida executar o container a partir da imagem criada. Altere seu .env
e descomente a linha ; MONGODB_URI=mongodb://mongo-latest:27017/api-users
colocando o hostname do mongo mongo-latest
. Então crie o container com o comando abaixo.
$ docker run -itd --name users_local --env-file ./.env -p 8080:8080 --network local-containers users
Criar superuser via docker.
Criando um usuario ou um customers de exemplo, com validação de cpf
Docker compose
A ser testado. Não utilize essa opção por enquanto.
Insomnia collection
Pode baixar a coleção do insomnia na pasta static e importar no app
OpenApi3
Levante o servidor python run.py
e acesse no browser o endereço http://0.0.0.0:8080/swagger-ui/#/
Testes
$ pytest
ou
$ make test
Roadmap
-
Capítulo 1: Introdução, configuração e Hello World
-
Capítulo 2: Organizando as dependências e requerimentos
-
Capítulo 3: Configurando o pytest e nosso primeiro teste
-
Capítulo 4: Configurando o Makefile
-
Capítulo 5: Adicionando o MongoDB a API
-
Capítulo 6: Criando e testando nosso modelo de usuários
-
Capítulo 7: Criando usuários
-
Capítulo 8: Listando usuários
-
Capítulo 9: Buscando usuários
-
Capítulo 10: Editando um usuário
-
Capítulo 11: Deletando um usuário
-
Capítulo 12: Autênticação por JWT
-
Capítulo 13: Criando um container docker
-
Capítulo 14: Deploy Flask na Digital Ocean
-
Capítulo 15: Automatizando o processo de deploy com Fabric
-
Capítulo 16: CI e CD com Jenkins, Python, Flask e Fabric