Python
python: 3.9.2
pip: 20.3.1
Para instalar as dependências do projeto utilize o comando demonstrado a seguir na raiz do diretório:
pip install -r requirements.txt
Para inicializar a aplicação localmente utilize o comando demonstrado a seguir na raiz do diretório:
uvicorn src.main:app --reload --port 8080
Para inicializar a aplicação através do Docker utilize o comando demonstrado a seguir na raiz do diretório:
sudo docker-compose up -d --build
Caso o container não inicialize, utilize o comando demonstrado a seguir na raiz do diretório:
sudo docker-compose up -d
Para inicializar os testes localmente utilize o comando demonstrado a seguir na raiz do diretório:
pytest src/tests/test.py
Para inicializar os testes através do Docker utilize o comando demonstrado a seguir na raiz do diretório:
sudo docker-compose exec app pytest src/tests/test.py
└── src
├── controllers
│ ├── healthcheck.py
│ ├── home.py
├── services
│ ├── healthcheck.py
│ ├── home.py
└── tests
| └── test.py
├── main.py
O diretório de src/controllers
é responsável por controlar a comunicação entre as requisições feitas do cliente para com a aplicação.
O diretório src/services
é responsável pela manipulação dos dados que serão recebidos e enviados pelos controllers
.
O diretório src/tests
contém os testes das entradas e saídas dos controllers
.
O FastAPI já vêm com o Swagger embutido, sendo /docs
uma versão mais simplificada e /redoc
uma versão mais completa. Para adicionar as informações basta apenas a criação dos endpoints
e então é possível visualizá-los através dos endereços demonstrados a seguir:
- fastapi: Framework para criação das APIs REST.
- fastapi-health: Biblioteca para realizar healthcheck das rotas.
- uvicorn: Servidor ASGI.
- pytest: Framework responsável por automatizar testes.
- requests: Biblioteca para realizar requisições HTTP/HTTPS.