SENAI • Back-End I Aula 08

Anatomia da Requisição: Params, Body & Status Codes

Atividade Prática Individual • 32 Temas Únicos

Desenvolvimento de Endpoints RESTful no Express.js

Cada aluno possui um desafio exclusivo de servidor API. Extraia dados via req.params, req.query e req.body, respondendo com semântica sem erros usando HTTP Status Codes.

Guia Rápido de Respostas HTTP

200 OK / 201 Created Sucesso / Registro Criado
400 Bad Request Dados Faltando/Inválidos
404 Not Found ID/Recurso Não Existe
500 Internal Error Erro Crítico no Servidor
Exemplo do Professor

Modelo Passo a Passo de Referência

Siga este roteiro estruturado para construir sua solução no Express.js do zero no VS Code.

1

Inicializar Projeto

Crie a pasta, rode npm init -y e instale express.

2

Configurar Express

Importe o Express e ative o middleware express.json().

3

Criar as Rotas

Extraia params, query e body para atender o tema.

4

Retornar Status Code

Responda com res.status().json() apropriado.

server.js • Código Modelo de Referência (Aula 08)
const express = require('express');
const app = express();

// OBRIGATÓRIO: Habilita o Express a ler JSON no corpo da requisição (req.body)
app.use(express.json());

// 1. EXEMPLO COM ROUTE PARAMS (req.params) - Identificador Único
app.get('/usuarios/:id', (req, res) => {
    const { id } = req.params; // Extrai o ID da URL

    // Simulação de busca: Se ID for maior que 100, recurso não existe
    if (Number(id) > 100) {
        return res.status(404).json({ erro: `Usuário com ID ${id} não foi encontrado.` });
    }

    res.status(200).json({ id, nome: "Carlos Eduardo", status: "Ativo" });
});

// 2. EXEMPLO COM QUERY PARAMS (req.query) - Filtro / Busca Dinâmica
app.get('/produtos', (req, res) => {
    const { categoria, ordenacao } = req.query; // Extrai query params opcionais

    res.status(200).json({
        mensagem: "Listagem de produtos filtrada com sucesso",
        filtrosAplicados: {
            categoria: categoria || "Todas",
            ordenacao: ordenacao || "padrao"
        }
    });
});

// 3. EXEMPLO COM BODY (req.body) - Cadastro / Envio de Dados JSON
app.post('/produtos', (req, res) => {
    const { nome, preco, categoria } = req.body;

    // Validação dos campos obrigatórios (Erro do Cliente -> 400)
    if (!nome || !preco) {
        return res.status(400).json({ 
            erro: "Dados incompletos! É obrigatório informar 'nome' e 'preco'." 
        });
    }

    // Sucesso ao criar novo recurso -> 201 Created
    res.status(201).json({
        mensagem: "Produto cadastrado com sucesso!",
        produtoCriado: { id: Math.floor(Math.random() * 1000), nome, preco, categoria }
    });
});

const PORT = 3000;
app.listen(PORT, () => {
    console.log(`🔥 Servidor Express rodando na porta ${PORT}`);
});
Testador Rápido

Simulador de Requisições Express

Teste o comportamento do Express.js antes de escrever seu próprio código. Veja como o servidor trata cada requisição.

Enviar Requisição

Exemplo com Route Param: /produtos/15 ou Query Param: /buscar?categoria=tech

application/json

Resposta do Servidor Express

Clique em "Executar Requisição" para simular a resposta do Express...
Distribuição de Desafios

Tarefas Individuais (32 Alunos)

Localize seu nome abaixo para visualizar o tema, rota atribuída, método e especificações da sua API.