Skip to content

API REST para disponilizar dados extraídos por Web Scraping do site world.openfoodfacts.org

Notifications You must be signed in to change notification settings

leonextlevel/fitness-food-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FITNESS FOOD API

Projeto com objetivo de extrair dados do site Open Food Facts através de web scraping e gerar uma API REST de consulta. O scraping deve ser executado através de um sistema Cron executado uma vez ao dia.

Principais linguagens, frameworks e tecnologias utilizadas

  • Linguagem Python
  • Django
  • Django Rest Framework
  • Pip-tools (gerenciamento de dependências)
  • Pytest
  • Model Bakery (Fixtures do Django)
  • Flake8 e Blue (linters)
  • Isort (Organização imports)
  • Swagger (Documentação OpenAPI)
  • BeautifulSoup (Scraping)
  • Docker e docker-compose
  • PostgreSQL

Instalação e Execução

Requisitos: Docker e docker-compose instalados.

  1. Copie o conteúdo de contrib/env-sample para um arquivo .env na raiz do projeto.
cp contrib/env-sample .env
  1. Construa a imagem
docker-compose build
  1. Suba o banco de dados
docker-compose up -d db
  1. Aplique as migrações do Django no banco de dados
docker-compose run --rm api python manage.py migrate
  1. Execute a API
docker-compose run --rm --service-ports api
  1. Execute o cron
docker-compose up cron

Utilitários

  1. Compilar dependências (Lembre de executar o build da imagem novamente após)
docker-compose run --rm api bash -c "pip-compile --generate-hashes /usr/src/requirements/production.in && pip-compile --generate-hashes /usr/src/requirements/development.in"
  1. Executar testes
docker-compose run --rm api pytest --cov .
  1. Executar o flake8 (linter)
docker-compose run --rm api flake8 .

Orientações

  1. Acesse a documentação do Swagger para ter aos endpoints disponíveis na API: http://localhost:8080/swagger/ (edite a porta se necessário)

  2. Edite o arquivo crontabs caso queira mudar o tempo de execução do cron (Formato do comando)

This is a challenge by Coodesh

About

API REST para disponilizar dados extraídos por Web Scraping do site world.openfoodfacts.org

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published