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.
docker run -itd --name mongo-latest -p 27017:27017 --network local-containers mongo
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
Necessário que o mongodb esteja executando
$ python run.py
ou
$ flask run --host=0.0.0.0 --port=8080 --debugger
Via local
$ flask createsuperuser admin [email protected] teste123
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.
A ser testado. Não utilize essa opção por enquanto.
Pode baixar a coleção do insomnia na pasta static e importar no app
Levante o servidor python run.py
e acesse no browser o endereço http://0.0.0.0:8080/swagger-ui/#/
$ pytest
ou
$ make test
-
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