🚀 Capítulo 09: Parâmetros de Requisição (Tema: Batman)

NOTE

Este capítulo utiliza a temática de Batman para explicar os parâmetros. Para investigar crimes, o Batman precisa de detalhes específicos: quem, onde e quando!


1. 🎯 Objetivo da Aula

Compreender as 3 formas principais de enviar dados do cliente para o servidor: Query Params, Path (Route) Params e Request Body.

2. 🏢 O Cenário Prático (Seu Desafio)

O Batman está usando o Batcomputador para buscar fichas de criminosos.

  1. Ele quer buscar todos os vilões de Gotham (Filtro).
  2. Ele quer buscar a ficha específica do Coringa (Identificador único).
  3. Ele quer cadastrar um novo crime com todos os detalhes (Dados complexos).

Seu desafio é ajudar o Batman a enviar esses dados para a API usando o tipo de parâmetro correto!

3. 🧠 Fundamentos: A Teoria Traduzida

Existem 3 formas principais de passar dados em uma requisição HTTP:

🔍 1. Query Params (Parâmetros de Busca)

Usados geralmente para filtros e paginação. Ficam na URL depois do ponto de interrogação ?.

  • URL: /vilões?cidade=gotham&periculosidade=alta
  • No Express: Acessados via req.query.cidade.

📍 2. Path Params (Parâmetros de Rota)

Usados para identificar um recurso específico. Fazem parte do caminho da URL.

  • URL: /vilões/coringa
  • No Express: Definidos como /vilões/:nome e acessados via req.params.nome.

📦 3. Request Body (Corpo da Requisição)

Usado para enviar dados complexos (geralmente em JSON) nos métodos POST e PUT. Os dados não aparecem na URL.

  • No Express: Acessados via req.body (precisa de um configurador para ler JSON).

4. 📖 Exemplo Guiado: Código no Express

const express = require('express');
const app = express();
app.use(express.json()); // Para conseguir ler o req.body
 
// 1. Path Param
app.get('/viloes/:nome', (req, res) => {
    const nomeVilao = req.params.nome;
    res.send(`Buscando ficha do vilão: ${nomeVilao}`);
});
 
// 2. Query Param
app.get('/busca', (req, res) => {
    const cidade = req.query.cidade;
    res.send(`Buscando vilões da cidade: ${cidade}`);
});

5. 🛠️ Prática Obrigatória 1: Qual Parâmetro Usar?

Diga qual tipo de parâmetro (Query, Path ou Body) você usaria para:

  1. Buscar um produto pelo seu código de barras único.
  2. Buscar produtos na faixa de preço entre 10 e 50 reais.
  3. Enviar o nome, e-mail e senha de um novo usuário que está se cadastrando.

6. 🛠️ Prática Obrigatória 2: Escrevendo a URL

Escreva como ficaria a URL para buscar carros da marca Ferrari do ano 2020 usando Query Params. (Dica: Use o ? e o &).


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 09 Backend) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

mod_07_backend_e_apis/
├── capitulos/
│   ├── capitulo_09_parametros.md
│   └── codigos/
│       └── cap09/
│           └── tipos_parametros.txt

9. 💡 Checkpoint de Lógica

Por que não usamos Path Params para fazer filtros como buscar por cor ou tamanho de produto?

10. 🔥 Desafio de Fixação

Pesquise o que é o body-parser e por que hoje em dia usamos app.use(express.json()) no lugar dele.

11. 🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Código de barras único Path Param (identifica um recurso específico).
  2. Faixa de preço Query Param (filtro).
  3. Dados de cadastro Request Body (dados complexos e sensíveis).

Capitulo Anterior | Proximo Capitulo