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.