Node.js & APIs0/17 lições

Módulo 2 • APIs REST

Rotas e middlewares

Ferramentas e leitura
Leitura100%
Aula guiada50–75 min5 etapas práticas

Nesta aula, você vai compreender Rotas e middlewares com explicação progressiva, exemplo resolvido, checagens e prática. Nada de apenas copiar: cada etapa prepara a próxima.

Antes de começar: Leia a aula anterior do módulo se algum termo parecer novo. Você pode testar o exemplo antes de continuar.

Ao terminar, você vai conseguir

  • Explicar Rotas e middlewares com suas próprias palavras
  • Reconhecer as partes importantes em um exemplo real
  • Identificar e corrigir os erros mais frequentes
  • Aplicar o conteúdo em uma atividade prática
1

Entrada

Reconheça os dados e condições disponíveis.

2

Processamento

Use Rotas e middlewares para transformar a entrada.

3

Saída

Confira o resultado e os casos que podem falhar.

0/6 atividades
1

Entenda o problema

O que é Rotas e middlewares

Uma API REST expõe recursos por URL e usa os verbos HTTP para dizer a intenção: GET lê, POST cria, PUT/PATCH atualiza, DELETE remove.

Cheque seu entendimento

Qual status indica recurso criado com sucesso?

1 de 5

O que você aprendeu

  • Uma API REST expõe recursos por URL e usa os verbos HTTP para dizer a intenção: GET lê, POST cria, PUT/PATCH atualiza, DELETE remove.
  • Validação antes de tocar nos dados e status coerente com o resultado: 400 para entrada ruim, 201 para criação.
  • Evite: Sempre responder 200, mesmo em erro.
  • Evite: Confiar na validação do front-end.

Videoaulas sobre este tema

Se você aprende melhor assistindo, abrimos uma seleção de aulas em vídeo em português sobre exatamente este assunto.

Quiz rápido

0/2 • 0 certas

1. Qual status indica recurso criado com sucesso?

2. Onde a validação de dados é obrigatória?

Laboratório

1/4

1. Faça funcionar

Laboratório de Rotas e middlewares: execute o exemplo, identifique entrada, processamento e saída e altere pelo menos um valor para observar como o resultado muda.

Abrir no playground
  • Checkpoints da prática (1/4)
  • Escreva sua versão a partir do modeloO texto do editor ainda é igual ao modelo inicial. Altere pelo menos uma linha para que a prática conte como sua.
  • Nenhuma lacuna deixada em branco
  • Execute seu códigoClique em “Verificar resposta” para rodar seu código e comparar a saída com o esperado.
  • Resultado ainda não confereEsperado: o programa rodar sem erro. Se aparecer uma mensagem de erro, leia a última linha: ela indica a linha e o tipo do problema.

Escreva sua solução e clique em Verificar.

Tire sua dúvida

Cada resposta é conferida contra o material desta lição antes de aparecer. Sem IA por trás e sem inventar nada.

Rotas e middlewares

Node.js & APIs • Módulo 2: APIs REST • Codding — material para estudo offline

Aluno: ______________________________ Data: ____ / ____ / ______

Nesta aula, você vai compreender Rotas e middlewares com explicação progressiva, exemplo resolvido, checagens e prática. Nada de apenas copiar: cada etapa prepara a próxima.

Objetivos da aula

  • Explicar Rotas e middlewares com suas próprias palavras
  • Reconhecer as partes importantes em um exemplo real
  • Identificar e corrigir os erros mais frequentes
  • Aplicar o conteúdo em uma atividade prática

Pré-requisito: Leia a aula anterior do módulo se algum termo parecer novo. Você pode testar o exemplo antes de continuar. • Duração: 50–75 min

Explicação passo a passo

1. O que é Rotas e middlewares

Uma API REST expõe recursos por URL e usa os verbos HTTP para dizer a intenção: GET lê, POST cria, PUT/PATCH atualiza, DELETE remove.

Checkpoint: Qual status indica recurso criado com sucesso? — Resposta: 201

2. Como pensar antes de fazer

O status code é parte do contrato: 200 ok, 201 criado, 400 pedido inválido, 401 não autenticado, 403 sem permissão, 404 não encontrado, 500 erro do servidor. Devolver 200 com {erro: true} quebra qualquer cliente sério.

Dica: Não decore a forma. Tente explicar com suas palavras qual problema “Rotas e middlewares” resolve.

3. Exemplo completo, do início ao resultado

Valide toda entrada no servidor. Validação no navegador é conforto para o usuário; segurança só existe do lado do servidor, porque qualquer um pode chamar o endpoint direto.

// Node + Express
const express = require("express");
const app = express();
app.use(express.json());

const tarefas = [];

app.get("/tarefas", (req, res) => res.json(tarefas));

app.post("/tarefas", (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.length < 3) {
    return res.status(400).json({ erro: "titulo deve ter ao menos 3 caracteres" });
  }
  const nova = { id: tarefas.length + 1, titulo, feita: false };
  tarefas.push(nova);
  res.status(201).json(nova);      // 201 = criado
});

app.listen(3000);
TrechoO que faz
// Node + ExpressComentário de orientação: documenta a intenção sem executar uma ação.
const express = require("express");Cria ou atualiza um valor que será usado pelo restante do exemplo.
const app = express();Cria ou atualiza um valor que será usado pelo restante do exemplo.
app.use(express.json());Contribui para a transformação principal mostrada neste exemplo.
const tarefas = [];Cria ou atualiza um valor que será usado pelo restante do exemplo.
app.get("/tarefas", (req, res) => res.json(tarefas));Contribui para a transformação principal mostrada neste exemplo.
app.post("/tarefas", (req, res) => {Contribui para a transformação principal mostrada neste exemplo.
const { titulo } = req.body;Cria ou atualiza um valor que será usado pelo restante do exemplo.

Dica: Validação antes de tocar nos dados e status coerente com o resultado: 400 para entrada ruim, 201 para criação.

Checkpoint: Onde a validação de dados é obrigatória? — Resposta: No servidor

4. Do detalhe para o todo

Autenticação normalmente usa um token (JWT) no cabeçalho Authorization. Autenticação diz quem você é; autorização diz o que você pode — são checagens diferentes e ambas ficam no servidor.

5. Erros comuns e como corrigi-los

1. Sempre responder 200, mesmo em erro. 2. Confiar na validação do front-end. 3. Colocar verbo na URL (/criarUsuario) em vez de usar POST /usuarios.

Dica: Quando algo der errado, compare uma diferença por vez com o exemplo. Evite mudar várias partes ao mesmo tempo.

Prática guiada

1. 1. Faça funcionar

Laboratório de Rotas e middlewares: execute o exemplo, identifique entrada, processamento e saída e altere pelo menos um valor para observar como o resultado muda.

// Node + Express
const express = require("express");
const app = express();
app.use(express.json());

const tarefas = [];

app.get("/tarefas", (req, res) => res.json(tarefas));

app.post("/tarefas", (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.length < 3) {
    return res.status(400).json({ erro: "titulo deve ter ao menos 3 caracteres" });
  }
  const nova = { id: tarefas.length + 1, titulo, feita: false };
  tarefas.push(nova);
  res.status(201).json(nova);      // 201 = criado
});

app.listen(3000);

Dica: Volte ao exemplo resolvido e compare a estrutura. Sempre responder 200, mesmo em erro.

2. 2. Preveja antes de testar

Sem executar, explique qual resultado o exemplo de Rotas e middlewares deve produzir e qual parte é responsável por ele.

Minha previsão:

A parte responsável pelo resultado:

Como vou conferir:

Dica: Use o modelo mental da aula: entrada, transformação e evidência observável.

3. 3. Encontre e corrija o erro

Use o exemplo de Rotas e middlewares, identifique um risco citado na aula e registre ou implemente a correção.

// Node + Express
const express = require("express");
const app = express();
app.use(express.json());

const tarefas = [];

app.get("/tarefas", (req, res) => res.json(tarefas));

app.post("/tarefas", (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.length < 3) {
    return res.status(400).json({ erro: "titulo deve ter ao menos 3 caracteres" });
  }
  const nova = { id: tarefas.length + 1, titulo, feita: false };
  tarefas.push(nova);
  res.status(201).json(nova);      // 201 = criado
});

app.listen(3000);

Dica: Sempre responder 200, mesmo em erro.

4. 4. Aplique em um caso novo

Crie uma variação própria usando Rotas e middlewares. Mude os dados ou o cenário e demonstre que o resultado continua correto.

// Node + Express
const express = require("express");
const app = express();
app.use(express.json());

const tarefas = [];

app.get("/tarefas", (req, res) => res.json(tarefas));

app.post("/tarefas", (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.length < 3) {
    return res.status(400).json({ erro: "titulo deve ter ao menos 3 caracteres" });
  }
  const nova = { id: tarefas.length + 1, titulo, feita: false };
  tarefas.push(nova);
  res.status(201).json(nova);      // 201 = criado
});

app.listen(3000);

Dica: Mantenha a estrutura que já funcionou e altere uma decisão por vez.

Revisão

  • Uma API REST expõe recursos por URL e usa os verbos HTTP para dizer a intenção: GET lê, POST cria, PUT/PATCH atualiza, DELETE remove.
  • Validação antes de tocar nos dados e status coerente com o resultado: 400 para entrada ruim, 201 para criação.
  • Evite: Sempre responder 200, mesmo em erro.
  • Evite: Confiar na validação do front-end.

Exemplo comentado

// Node + Express
const express = require("express");
const app = express();
app.use(express.json());

const tarefas = [];

app.get("/tarefas", (req, res) => res.json(tarefas));

app.post("/tarefas", (req, res) => {
  const { titulo } = req.body;
  if (!titulo || titulo.length < 3) {
    return res.status(400).json({ erro: "titulo deve ter ao menos 3 caracteres" });
  }
  const nova = { id: tarefas.length + 1, titulo, feita: false };
  tarefas.push(nova);
  res.status(201).json(nova);      // 201 = criado
});

app.listen(3000);

Validação antes de tocar nos dados e status coerente com o resultado: 400 para entrada ruim, 201 para criação.

Erros comuns

  • Sempre responder 200, mesmo em erro.
  • Confiar na validação do front-end.
  • Colocar verbo na URL (/criarUsuario) em vez de usar POST /usuarios.

Quiz e gabarito completo

  1. 1. Qual status indica recurso criado com sucesso?

    • a) 200
    • b) 201
    • c) 204
    • d) 301

    Gabarito: b) 201 — 201 Created é a resposta canônica de um POST bem-sucedido.

  2. 2. Onde a validação de dados é obrigatória?

    • a) No navegador
    • b) No servidor
    • c) No banco apenas
    • d) Em nenhum lugar se usar HTTPS

    Gabarito: b) No servidor — O cliente pode ser burlado; o servidor é a fronteira real.

Codding • Node.js & APIs • Rotas e middlewares • Prova final e certificado em codding.lovable.app/cursos/nodejs/prova