Este serviço é responsável por armazenar quais são os produtos favoritos de um determinado cliente.
Todas as rotas são protegidas por um token JWT, este que deve ser obtido na rota de login.
Índice
- Requisitos
- Informações adicionais
- Configuração do ambiente
- Comandos úteis
- Tecnologias utilizadas
- Imagens
- Python 3.7.6
- Postgres
- Redis
O arquivo .env.example
serve para setar variáveis de ambiente em modo de desenvolvimento ou teste.
Para que haja efeito deve-se renomear o arquivo para .env
.
O banco de dados padrão para armazenamento dos dados é o postgres
e redis
.
Após fazer a configuração inicial, pode-se acessar as rotas do projeto pela URL http://localhost:5000/docs
Na documentação há uma rota /auth/register
que deve ser usada para fazer o primeiro cadastro no sistema.
Após fazer o cadastro, deve-se utilizar a rota /auth/login
para obter o token de acesso às demais rotas, este que deve ser injetado no header authorization
.
Será gerado dois tokens (access_token e refresh_token). Para acessar as rotas é recomendado utilizar somente o access_token
e caso o mesmo expire, pode-se utilizar o refresh_token
para obter um novo token. Todos os dois tokens tem uma vida útil de 15 e 30 minutos respectivamente.
Iniciar ambiente virtual
python -m venv venv
Ativar ambiente virtual
- Linux
source venv/bin/activate
- Windows
venv\Scripts\activate
Instalar dependências
pip install -r requirements.txt
Após configurar os dados de conexão com o banco de dados, rodar o comando
flask config create-db luizalabs
Aplicar as migrations no banco de dados
flask db upgrade
Iniciar a aplicação
flask run
Acessar a documentação (não disponível para o modo de produção)
http://localhost:5000/docs
Rodar testes de TDD para obter taxa de coverage
flask commands coverage
Obs.: Antes de executar o comando acima verifique se a aplicação está apontada para o banco de teste
Rodar o lint para organização do código
flask commands lint
Rodar o teste de complexidade do código
flask commands complexity
Rodar testes de coverage
flask commands coverage
Criar um database no Postgres
flask config create-db NOME_DATABASE
Ver comandos do database
flask db
Ver todas as rotas da aplicação
flask routes
Rodar aplicação
flask run
- Python: linguagem de programação utilizada no desenvolvimento do serviço;
- Postgres: banco de dados relacional utilizado para armazenar os dados;
- Git: tecnologia para controle de versão do código;
- Flask: micro-framework para gerenciamento web;
- SQLAlchemy: biblioteca de objeto-relacional para manipulação de SQL;
- Marshmallow: biblioteca para validação de dados de entrada e saída;
- Restplus: biblioteca para criação da documentação das rotas da aplicação;
- Requests: biblioteca para realização de chamadas em outros sites/api's;
- Radon: biblioteca para verificar a complexidade dos códigos;
- Pre-commit: biblioteca que define os padrões do PEP 8, quando é feito um commit;