Routing
El routing en Laravel permite definir cómo la aplicación responde a las solicitudes HTTP dirigidas a URLs específicas. Laravel ofrece un sistema potente y flexible para gestionar rutas, con soporte para parámetros, middleware, nombres de rutas y agrupaciones.
Rutas básicas
Las rutas se definen en los archivos routes/web.php (para aplicaciones web) o routes/api.php (para APIs). Ejemplos:
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::post('/usuarios', function () {
return 'Usuario creado';
});
Route::put('/usuarios/{id}', function ($id) {
return "Usuario {$id} actualizado";
});
Route::delete('/usuarios/{id}', function ($id) {
return "Usuario {$id} eliminado";
});
Rutas con parámetros
Laravel permite capturar valores dinámicos en las rutas:
Route::get('/usuarios/{id}', function ($id) {
return "Usuario con ID: {$id}";
});
Se pueden definir múltiples parámetros y opcionales:
Route::get('/usuarios/{id}/tareas/{tareaId?}', function ($id, $tareaId = null) {
return "Usuario {$id}, Tarea {$tareaId}";
});
Agrupación de rutas
Para organizar rutas relacionadas se pueden usar grupos de rutas con prefijos, nombres y middleware:
Route::prefix('admin')->middleware('auth')->group(function () {
Route::get('/dashboard', function () {
return 'Panel de administración';
});
Route::resource('usuarios', UsuarioController::class);
});
prefix: agrega un prefijo a todas las rutas del grupo.middleware: aplica middleware a todas las rutas del grupo.Route::resource: genera automáticamente rutas CRUD para un controlador.
Buenas prácticas y convenciones
- Mantener las rutas organizadas en
web.phppara web yapi.phppara APIs. - Nombrar rutas de forma descriptiva usando
->name('nombre.ruta')para facilitar la generación de URLs. - Evitar lógica compleja dentro de las rutas; delegar a controladores.
- Agrupar rutas relacionadas con
prefixymiddlewarepara mantener la coherencia y seguridad. - Usar
Route::resourceoRoute::controllercuando sea posible para reducir la repetición de código.