O projeto consiste em uma REST API utilizando os dados do Open Food Facts
GET api/
: Detalhes da API, se conexão leitura e escritura com a base de dados está OK, horário da última vez que o CRON foi executado, tempo online e uso de memória.PUT api/products/:code
: Atualiza um produtoDELETE api/products/:code
: Muda o status do produto paratrash
GET api/products/:code
: Obtém a informação somente de um produto da base de dadosGET api/products
: Lista todos os produtos da base de dados
- Laravel e Php
- Mysql
- Bash Script
Execute os comandos no seu terminal
git clone https://github.com/gustavors22/Products-Parser.git
cd Product-Parser
Na raiz do projeto uma pasta chamada product_parser_api. Entre nela e execute os seguintes passos:
cd product_parser_api
- instalando dependências:
composer install
-
Abra a pasta "product_parser_api" com seu editor de código.
-
Crie um arquivo ".env" e cole o conteúdo do arquivo ".env.example" dentro.
-
Crie um banco de dados mysql.
-
Coloque as informações do seu banco de dados nos seus respectivos campos no arquivo ".env"
DB_CONNECTION=mysql // SGBD
DB_HOST=127.0.0.1 // IP do seu SGBD
DB_PORT=3306 // porta que seu banco está rodando
DB_DATABASE=products // nome do banco dados criado
DB_USERNAME=root // usuário de conexão do banco
DB_PASSWORD=root // senha de conexão do banco (caso não tenha senha deixe em branco)
- Execute o seguinte comando para executar a migrations
php artisan migrate
- Execute o seguinte comando para popular o banco com alguns dados
php artisan db:seed
- Execute o comando para finalmente ter a api rodando
php artisan serve
- Entre na pasta scripts localizado na raiz do projeto.
cd scripts/
- Adicione as informações do seu banco de dados na primeira parte do database_insertion_script.sh como mostrado abaixo.
# Define database credentials
DB_USER="root"
DB_PASSWORD="root"
DB_HOST="127.0.0.1"
DB_NAME="products_db"
TABLE_NAME="products"
- Execute o seguinte comando para dar a permissão de execução para o arquivo database_insertion_script.sh.
chmod +x ./database_insertion_script.sh
- Instale a ferramenta de manipulação de json utilizada pelo script.
linux
sudo apt-get update
sudo apt-get install jq
MacOs
brew install jq
- Caso queira que o script seja executado apenas uma vez, basta executar o seguinte comando.
./database_insertion_script.sh
- Caso queira que o script execute todos os dias as 3 horas da manhã, execute o comando abaixo.
crontab -e
- Se você nunca definiu uma tarefa cron antes, o sistema pode pedir para escolher o editor de texto padrão. Escolha o editor de sua preferência e prossiga. No final do arquivo, adicione a seguinte linha:
0 3 * * * /caminho/para/scripts/database_insertion_script.sh
This is a challenge by Coodesh