const express = require('express');
const app = express();
const PORT = 3000;
// OBRIGATÓRIO: Habilita leitura de payloads JSON (req.body)
app.use(express.json());
// =============================================================================
// NÍVEL 1: Rota de Status (GET)
// =============================================================================
app.get('/', (req, res) => {
res.json({
mensagem: "API Modelo da Aula 07 rodando",
status: "ativo",
data: new Date().toLocaleDateString()
});
});
// =============================================================================
// NÍVEL 2: Array em Memória + Rota GET de Listagem
// =============================================================================
const produtos = [];
app.get('/produtos', (req, res) => {
res.json({
total: produtos.length,
itens: produtos
});
});
// =============================================================================
// NÍVEL 3: Rota POST com Validação de Payload (Status 400 vs 201)
// =============================================================================
app.post('/produtos', (req, res) => {
const dados = req.body;
// Validação de campos
if (!dados.nome || !dados.preco) {
return res.status(400).json({
sucesso: false,
erro: "Campos obrigatórios ausentes no JSON!",
camposExigidos: ["nome", "preco"]
});
}
const novoProduto = {
id: produtos.length + 1,
nome: dados.nome,
preco: Number(dados.preco),
criadoEm: new Date().toLocaleTimeString()
};
produtos.push(novoProduto);
res.status(201).json({
sucesso: true,
mensagem: "Produto cadastrado com sucesso!",
produto: novoProduto
});
});
app.listen(PORT, () => {
console.log(`Servidor rodando em http://localhost:${PORT}`);
});