🚀 Capítulo 08: Roteamento e Endpoints (Tema: Senhor dos Anéis)

NOTE

Este capítulo utiliza a temática de Senhor dos Anéis para explicar as rotas. Na Terra Média, cada caminho leva a um destino diferente!


1. 🎯 Objetivo da Aula

Compreender o conceito de Roteamento (Routing) em um servidor Express e como criar múltiplos endpoints para diferentes recursos.

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

Você é o guia da Sociedade do Anel. Para ajudar Frodo e seus amigos, você precisa criar um mapa digital (um servidor) com rotas específicas.

  • O caminho /condado deve levar aos Hobbits.
  • O caminho /mordor deve levar ao perigo.
  • O caminho /gondor deve levar aos homens.

Seu desafio é programar essas rotas no servidor Express para que a Sociedade não se perca!

3. 🧠 Fundamentos: A Teoria Traduzida

Roteamento é o mecanismo que determina como uma aplicação responde a uma requisição do cliente para um determinado endpoint (URI) e método HTTP específico.

No Express, criamos rotas usando a estrutura: app.METODO(CAMINHO, FUNCAO)

  • app: A instância do nosso servidor.
  • METODO: O verbo HTTP (get, post, put, delete).
  • CAMINHO: O endpoint (ex: /mordor).
  • FUNCAO: O que acontece quando o caminho é acessado. Recebe req (requisição) e res (resposta).

4. 📖 Exemplo Guiado: Criando Múltiplas Rotas

const express = require('express');
const app = express();
 
// Rota 1: O Condado
app.get('/condado', (req, res) => {
    res.send('Bem-vindo ao Condado! Lar dos Hobbits.');
});
 
// Rota 2: Mordor
app.get('/mordor', (req, res) => {
    res.send('Cuidado! Um passo em falso e o Olho te verá.');
});
 
app.listen(3000, () => console.log('Mapa da Terra Média online!'));

5. 🛠️ Prática Obrigatória 1: Criando a Rota de Gondor

Adicione uma nova rota ao código do exemplo guiado.

  • O endpoint deve ser /gondor.
  • A resposta deve ser: "A cidade branca precisa de ajuda!".
  • Escreva apenas o código da nova rota.

6. 🛠️ Prática Obrigatória 2: O que é o req e o res?

No código das rotas, sempre usamos (req, res) => { ... }. Explique para que servem esses dois objetos mágicos que o Express nos dá.


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

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 08 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_08_roteamento.md
│   └── codigos/
│       └── cap08/
│           └── rotas_terra_media.js

9. 💡 Checkpoint de Lógica

Se criarmos duas rotas idênticas no mesmo código (ex: duas app.get('/mordor')), o que o Express fará quando alguém acessar /mordor? (Dica: O código roda de cima para baixo).

10. 🔥 Desafio de Fixação

Pesquise como retornar um objeto JSON em vez de um texto simples usando res.json() no Express.

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

Gabarito da Prática 1:

app.get('/gondor', (req, res) => {
    res.send('A cidade branca precisa de ajuda!');
});

Capitulo Anterior | Proximo Capitulo