REST API para fácil acesso às informações nutricionais dos mais diversos produtos!
Desenvolvido para solução do desafio PHP Challenge 20200916 da Coodesh, que estabelece que o objetivo da API é auxiliar nutricionistas da empresa Fitness Foods LC através do acesso aos dados do projeto Open Food Facts, além de outras regras e orientações.
A informação detalhada sobre a API está presente no aquivo openapi.json. Segue abaixo um pequeno resumo das endpoints:
/
- GET : Retorna detalhes sobre o estado atual da API
/products
- GET : Retorna lista paginada dos produtos disponíveis na base de dados
/products/{code}
- GET : Retorna informações de um produto especificado por seu código
- PUT : Atualiza informações do produto especificado por seu código
- DELETE : Atualiza o status do produto colocando-o na lixeira.
Apenas Docker Desktop, Git e seus próprios requisitos são necessários para execução desta aplicação.
-
Clone este repositório e acesse o caminho para o diretório do projeto no terminal
Exemplo:
git clone https://github.com/mnborges/fitness-foods-api.git cd fitness-foods-api
-
Copie as variáveis de ambiente declaradas em .env.example para um novo arquivo .env na raiz do projeto, ou apenas renomeie .env.example para .env
Exemplo:
cp .env.example .env
Observe que a variável
APP_KEY
está indefinida, essa chave será gerada nos próximos passos. -
Instale as dependências do projeto utilizando a imagem Docker do gerenciador de dependências Composer
docker run --rm -u "$(id -u):$(id -g)" -v "$(pwd):/var/www/html" -w /var/www/html laravelsail/php81-composer:latest composer install --ignore-platform-reqs
Essa etapa pode levar alguns minutos.
-
Construa e execute o docker container
./vendor/bin/sail up
Caso ache conveniente, é possível configurar um alias para executar os comandos da interface Sail mais facilmente, veja como na documentação do Laravel.
-
Abra uma nova sessão em seu terminal e execute o seguinte comando para gerar uma chave para a variável de ambiente
APP_KEY
no arquivo .env./vendor/bin/sail php artisan key:generate
-
Execute a migração do banco de dados
./vendor/bin/sail php artisan migrate
-
Processe os testes através do comando seguinte para verificar que todos os endpoints estão acessíveis e adequados
./vendor/bin/sail php artisan test
-
Verifique a aplicação em funcionamento no endereço localhost.
Para interromper a execução do docker container pressione Control+C na sessão de terminal do passo 4, ou utilize o comando seguinte em outra sessão
./vendor/bin/sail down
Os dados do projeto Open Food Facts devem ser importados diariamente à meia noite, para configurar um horário diferente basta mudar a variável de ambiente CRON_SCHEDULE_HOUR
em seu arquivo .env
para o horário desejado seguindo o formato HH:MM.
Para executar a importação manualmente execute o seguinte comando:
./vendor/bin/sail php artisan import:cron
Para automatizá-la é necessário configurar o servidor para executar o comando scheduler:run
do Laravel a cada minuto, conforme indicado pela documentação.
* * * * * cd /path-to-the-project && php artisan schedule:run >> /dev/null 2>&1
Maieza N. Borges - LinkedIn - maieza.borges@gmail.com