🚀 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
/condadodeve levar aos Hobbits. - O caminho
/mordordeve levar ao perigo. - O caminho
/gondordeve 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. Recebereq(requisição) eres(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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 08 Backend) e clique em Commit to main. - 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.js9. 💡 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!');
});