Cadastro de usuários é um microsserviço para manter usuários.
É possível cadastrar, atualizar, remover, buscar e listar os usuários cadastrados.
A API foi construída com FastApi.
Caso o desenvolvedor opte por executar a solução de forma não dockerizada, sugere-se a criação de um ambiente virtual para instalação das dependências da aplicação, como por exemplo o virtualenvwrapper.
Para instalar as dependências do projeto, execute:
pip3 install -e .
Além disso, é preciso inicializar os softwares de dependência, são eles:
PostgreSQL
: Banco de dados relacional para manter um usuário.PGAdmin
: Permite a comunicação com o banco de dadosPostgreSQL
através de uma interface gráfica, exposta por uma URL.
No cenário em que o desevolvedor opte por executar a aplicação de forma dockerizada(recomendada) é preciso possuir o docker e o docker-compose instalados.
As variáveis de ambiente listadas abaixo devem estar exportadas no terminal para serem consumidas através do docker-compose
, conforme instruções do passo seguinte Instalação e Execução
. Enquanto o valor das variáveis mudam conforme a necessidade de execução, os nomes devem permanecer os mesmos, são eles:
-
PGADMIN_DEFAULT_EMAIL
: email utilizado no momento de criação do containerPGAdim
permitindo o login; -
PGADMIN_DEFAULT_PASSWORD
: password utilizado no momento de execução do containerPGAdim
permitindo o login; -
POSTGRES_DB
: Nome do banco de dados utilizado para criação do banco de dados, consumido pelo container do banco de dados; -
POSTGRES_USER
: Usuário do banco de dados utilizado para criação do banco de dados, consumido pelo container do banco de dados; -
POSTGRES_PASSWORD
: Senha do banco de dados utilizado para criação do banco de dados, consumido pelo container do banco de dados.
A execução da aplicação é dividida em duas partes: build
das imagens consumidas pelos containers e a execução dos containers. Para o build das imagens é necessário executar o seguinte comando:
bash build.sh
Com as imagens buildadas é possível executar os containers, através do comando:
bash run.sh
Com a aplicação no ar, basta acessar o ReDoc para saber como utilizar cada um dos endpoints e para utilizar os endpoints acesse o Swagger.
Com todo o ambiente rodando, antes mesmo de instalar e rodar a aplicação, é preciso executar a query de criação no banco de dados. Entre no PGAdmin configure o acesso ao banco de dados e execute a query do arquivo create.sql
.
Os testes da aplicação realizam a validação das respostas às requisições dos endpoints, validando o código de retorno esperado, o conteúdo do retorno e o tipo do retorno.
O ideal é que os testes sejam executados de forma dockerizada, para tanto, é preciso que os containers da API e do banco de dados estejam em execução, o que pode ser feito seguindo as instruções em Instalação e Execução.
Com o container da API nomeado como cadastro
, execute:
docker container exec -it cadastro pytest -v
Esse código segue o padrão PEP8 e pode ser testado com a biblioteca PyLama como no exemplo a seguir
pip3 install pylama
pylama -o pylama.ini .
Com a aplicação dockerizada e testada, é possível efetuar o deploy em um orquestrador de containers a exemplo do Kubernetes, ou mesmo, com o orquestrador nativo do Docker - Swarm.
O versionamento segue o padrão do Versionamento Semântico. Para saber as versões de repositório entre nas tags.
Todos os direitos são reservados ao autor Kevin de Santana Araujo.
- Caso tenha alguma dúvida em relação ao projeto, ou queira contribuir com sugestões ou críticas, abra uma issue ou procure o desenvolvedor através do email kevin_santana.araujo@hotmail.com