Este projeto é uma base para o desenvolvimento de APIs utilizando Python e a biblioteca Flask. Ele permite a conexão com qualquer banco de dados SQL por meio da biblioteca SQLAlchemy.
O objetivo deste projeto é fornecer uma estrutura inicial para o desenvolvimento de APIs em Python. Ele inclui funcionalidades essenciais, como rotas, autenticação JWT e geração de tokens.
├── Dockerfile # Arquivo de configuração do Docker
├── LICENSE # Arquivo de licença
├── README.md # Documentação do projeto
├── app.py # Arquivo principal da aplicação Flask
├── requirements.txt # Arquivo de dependências Python
├── blacklist.py # Arquivo de váriavel global para blacklist de tokens JWT
└── auth # Diretório contendo arquivos relacionados à autenticação
├── cryptdecrypt.py # Arquivo de gerenciamento de criptografia
└── managertk.py # Arquivo de gerenciamento de tokens
├── models # Diretório contendo arquivos de definição dos modelos de dados
├── tests # Diretório contendo arquivos de testes unitários
├── routes # Diretório contendo arquivos de definição das rotas da API
├── orm # Diretório contendo arquivos de operações com banco de dados
├── controllers # Diretório contendo funcionalides da aplicação
├── functions
├── uuid_manager.py # Arquivo responsavel de gerar UUIDs para as tabelas
└── utils # Diretório contendo utilitários auxiliares
├── EmailsManagement.py # Arquivo de gerenciamento de emails (pasta utils)
├── S3FileManagement.py # Arquivo de gerenciamento de arquivos no S3 (pasta utils)
└── webhooks.py # Arquivo de gerenciamento de webhooks (pasta utils)
Este projeto inclui testes automatizados para verificar o funcionamento correto da API. Os testes estão localizados no diretório tests
.
O teste HealthCheck
é responsável por verificar se a API está funcionando corretamente. Ele realiza uma requisição GET ao endpoint de health check e verifica o status da resposta, a presença da propriedade "version" no JSON retornado e o tempo de resposta.
Para executar os testes automatizados, siga as etapas abaixo:
- Certifique-se de que a aplicação esteja em execução.
- Abra um terminal e navegue até o diretório do projeto.
- Execute o seguinte comando para executar o teste:
pytest
Antes de começar, certifique-se de ter o Python 3.10.6 instalado em seu ambiente.
-
Clone este repositório para o seu ambiente local.
-
Acesse a pasta do projeto em um terminal.
-
Execute o seguinte comando para instalar as dependências:
pip install -r requirements.txt
-
Execute o seguinte comando para iniciar a aplicação:
python3 app.py
Este projeto também inclui um Dockerfile, permitindo o uso de containerização da aplicação. Siga as instruções abaixo para usar o Docker:
-
Certifique-se de ter o Docker instalado em seu ambiente.
-
Na pasta do projeto, execute o seguinte comando para buildar a imagem Docker:
docker build --build-arg PORT=5001 -t flaskapi .
-
Depois que a imagem Docker for construída, você pode executar a aplicação em um contêiner Docker usando o seguinte comando:
docker run -d --restart=always --name flaskApi -p 5001:5001 -v $(pwd):/api flaskapi
Este comando realiza o seguinte:
- -d inicia o contêiner em segundo plano (modo "detached").
- --restart=always configura o contêiner para reiniciar automaticamente em caso de falhas ou reinicializações do sistema.
- --name flaskApi define o nome do contêiner como "flaskApi".
- -p 5001:5001 mapeia a porta 5001 do contêiner para a porta 5001 do seu host local, permitindo que você acesse a API.
- -v $(pwd):/api mapeia o volume do diretório atual para o diretório /api dentro do contêiner, garantindo que quaisquer alterações feitas no código sejam refletidas instantaneamente na aplicação em execução.
As configurações do projeto podem ser encontradas no arquivo .env
. Nele, você poderá definir as credenciais de acesso ao banco de dados e outras variáveis de ambiente relevantes.
Se você quiser contribuir para este projeto, fique à vontade para abrir uma issue ou enviar um pull request.
Este projeto está licenciado sob a licença MIT.