Aula 04 - Rotas e Controllers 🛤️
🎯 Objetivo da Aula
Dominar o sistema de roteamento do Laravel e entender como os Controllers organizam a lógica de resposta às requisições dos usuários.
📍 Sistema de Rotas
As rotas mapeiam URLs para ações. No Laravel, as rotas web ficam em routes/web.php.
Tipos de Rotas
Podemos responder a diferentes verbos HTTP:
use Illuminate\Support\Facades\Route;
Route::get('/contato', function () {
return 'Página de Contato';
});
Route::post('/salvar', function () {
// Processa dados enviados
});
🕹️ Controllers
Em vez de colocar lógica nas rotas, usamos Controllers para manter o código limpo.
Criando um Controller via Artisan
Vinculando Rota ao Controller
use App\Http\Controllers\ProdutoController;
Route::get('/produtos', [ProdutoController::class, 'index']);
📊 Fluxo Rota -> Controller
graph LR
A[URL: /usuarios] --> B{Router}
B --> C[UserController]
C --> D[Método: index]
D --> E[Resposta: View/JSON]
🔗 Parâmetros de Rota
Podemos capturar dados diretamente da URL:
// Rota com parâmetro obrigatório
Route::get('/perfil/{id}', function ($id) {
return "Usuário ID: " . $id;
});
🛡️ Middlewares
Middlewares agem como "filtros" entre a requisição e a resposta (ex: verificar se o usuário está logado).
Segurança
Nunca deixe rotas administrativas expostas sem o middleware auth.
🧠 Blocos de Destaque
Validação Básica
O Laravel permite validar dados diretamente no Controller usando o método $request->validate().
🛠️ Exercícios Progressivos
- Básico: Crie uma rota que receba um nome e retorne "Bem-vindo, [nome]".
- Intermediário: Crie um
UserControllere uma rota que aponte para o métodoshow. - Desafio: Crie um grupo de rotas com o prefixo
/admine proteja-as simulando um middleware.
🚀 Mini-Projeto da Aula
Gerenciador de Links:
Crie um sistema de rotas dinâmicas que redirecione o usuário para diferentes redes sociais baseado no parâmetro passado na URL (ex: /social/github -> redireciona para seu perfil). Use um Controller para lidar com os redirecionamentos.