Você foi contratado(a) para uma consultoria e seu trabalho envolve analisar os dados de vitivinicultura da Embrapa, os quais estão disponíveis aqui.
A ideia do projeto é a criação de uma API pública de consulta nos dados do site nas respectivas abas:
- Produção
- Processamento
- Comercialização
- Importação
- Exportação
A API vai servir para alimentar uma base de dados que futuramente será usada para um modelo de Machine Learning.
Seus objetivos incluem:
- Criar uma Rest API em Python que faça a consulta no site da Embrapa.
- Sua API deve estar documentada.
- É recomendável (não obrigatório) a escolha de um método de autenticação (
JWT
, por exemplo). - Criar um plano para fazer o deploy da API, desenhando a arquitetura do projeto desde a ingestão até a alimentação do modelo (aqui não é necessário elaborar um modelo de ML, mas é preciso que vocês escolham um cenário interessante em que a API possa ser utilizada).
- Fazer um MVP realizando o deploy com um link compartilhável e um repositório no GitHub.
-
Clone the repository
-
With
HTTP
# With HTTPS git clone https://github.com/LucasVmigotto/fiap-pos-ml-eng-techchallenge-1.git
-
With
SSH
git clone git@github.com:LucasVmigotto/fiap-pos-ml-eng-techchallenge-1.git
-
-
Open the project with Visual Studio Code:
code <project folder>
If the project not already open inside a container, use
CTRL
+Shift
+P
and run the Dev Containers: Rebuild Container Without Cache command -
Happy coding :)
-
Run inside the Visual Studio Code terminal
poetry run python -m uvicorn --host 0.0.0.0 --port 8000 --reload
-
Run the following command:
docker compose up api
You can use
docker compose -d up api
to run in detached mode. Although, to be able to see any server logs, you will need to rundocker compose logs -f api
Once successfully started, the service will be available in localhost:8001
The Docker Compose container use the port 8001 to not get conflicted with the Visual Studio Code that use the port 8000 - Uvicorn default's door
-
Run the following command in the first level of the project's folder:
docker build \ -f Dockerfile --tag fiap-pos-techchallenge \ --no-cache \ .
If necessary, add the
--progress plain
to see all build output-
You can test the builded container with:
docker run \ --publish 8001:80 \ --rm \ fiap-pos-techchallenge
Give it a try in localhost:8001
-