Este projeto é um servidor web desenvolvido em Node.js e Express para gerenciar uma coleção de receitas culinárias. Ele oferece operações CRUD (Criar, Ler, Atualizar e Deletar) para gerenciar as receitas, e os dados são armazenados em memória.
Clone o repositório:
git clone https://github.com/thalesfb/DevWeb.git
Navegue até o diretório do projeto:
cd recipes-api
Instale as dependências:
npm install
Crie um arquivo .env na raiz do projeto com a porta desejada:
echo "PORT=3000" > .env
Para iniciar o servidor, execute:
npm start
O servidor estará rodando em http://localhost:3000.
/recipesGET/recipes/:idGETid - ID da receita/recipesPOST{
"titulo": "Bolo de Cenoura",
"ingredientes": ["Farinha", "Açúcar", "Cenoura", "Ovos", "Manteiga"],
"instrucoes": "Misture todos os ingredientes e asse por 40 minutos a 180°C.",
"tempoPreparo": "1 hora",
"tipoPrato": "Sobremesa"
}
/recipes/:idPUTid - ID da receita{
"titulo": "Bolo de Cenoura",
"ingredientes": ["Farinha", "Açúcar", "Cenoura", "Ovos", "Manteiga"],
"instrucoes": "Misture todos os ingredientes e asse por 40 minutos a 180°C.",
"tempoPreparo": "1 hora",
"tipoPrato": "Sobremesa"
}
/recipes/:idDELETEid - ID da receita/recipes/searchGETingredient - (Opcional) Ingrediente para filtrar as receitas.type - (Opcional) Tipo de prato para filtrar as receitas.Listar todas as receitas:
curl http://localhost:3000/recipes
Obter uma receita específica:
curl http://localhost:3000/recipes/1
Adicionar uma receita:
curl -X POST http://localhost:3000/recipes \
-H "Content-Type: application/json" \
-d '{"titulo": "Bolo de Cenoura", "ingredientes": ["Farinha", "Açúcar", "Cenoura", "Ovos", "Manteiga"], "instrucoes": "Misture todos os ingredientes e asse por 40 minutos a 180°C.", "tempoPreparo": "1 hora", "tipoPrato": "Sobremesa"}'
Atualizar uma receita:
curl -X PUT http://localhost:3000/recipes/1 \
-H "Content-Type: application/json" \
-d '{"titulo": "Bolo de Cenoura Atualizado", "ingredientes": ["Farinha", "Açúcar", "Cenoura", "Ovos", "Manteiga", "Cobertura de Chocolate"], "instrucoes": "Misture todos os ingredientes e asse por 40 minutos a 180°C. Adicione a cobertura.", "tempoPreparo": "1 hora e 15 minutos", "tipoPrato": "Sobremesa"}'
Remover uma receita:
curl -X DELETE http://localhost:3000/recipes/1
Pesquisar receitas por ingrediente:
curl http://localhost:3000/recipes/search?ingrediente=Ovos
Pesquisar receitas por tipo de prato:
curl http://localhost:3000/recipes/search?tipoPrato=Sobremesa
Sinta-se à vontade para abrir issues e pull requests para melhorias.
Este projeto está licenciado sob a licença MIT.
Este projeto é uma implementação simples para fins educacionais. Como as receitas são armazenadas apenas em memória, todos os dados serão perdidos ao reiniciar o servidor. Em um ambiente de produção, seria necessário integrar com um banco de dados para persistir os dados.