Curso de Laravel básico
Definición de Rutas y Métodos HTTP en Laravel: Guía Completa
Aprende a definir rutas en Laravel, gestionar métodos HTTP como GET, POST, PUT y DELETE, usar parámetros dinámicos, middleware y agrupar rutas para una estructura eficiente
En Laravel, las rutas sirven como el punto de entrada para las solicitudes HTTP. Estas rutas se utilizan para definir qué acción o controlador debe ejecutarse cuando el usuario accede a una URL específica. En este capítulo, aprenderás a definir rutas, entender los métodos HTTP, trabajar con parámetros y organizar tus rutas de manera eficiente.
Las rutas en Laravel se configuran para conectar las URL con las funcionalidades de tu aplicación. Por defecto, estas rutas se encuentran en los archivos del directorio routes/
. El más utilizado es routes/web.php
, donde se definen las rutas que serán accedidas a través del navegador.
Ejemplo básico de una ruta:
php
Route::get('/', function () { return 'Bienvenido a Laravel'; });
En este ejemplo, la ruta utiliza el método get()
para gestionar solicitudes HTTP de tipo GET en la URL raíz /
. Al acceder a esta ruta, Laravel devolverá el texto "Bienvenido a Laravel".
Route::get()
php
Route::get('/productos', 'ProductController@index');
Route::post()
php
Route::post('/productos', 'ProductController@store');
Route::put()
php
Route::put('/productos/{id}', 'ProductController@update');
Route::patch()
php
Route::patch('/productos/{id}', 'ProductController@updatePartial');
Route::delete()
php
Route::delete('/productos/{id}', 'ProductController@destroy');
Route::options()
php
Route::options('/productos', 'ProductController@options');
Route::any()
php
Route::any('/contacto', 'ContactController@handle');
Route::match()
php
Route::match(['get', 'post'], '/buscar', 'SearchController@find');
Route::redirect()
php
Route::redirect('/antigua-ruta', '/nueva-ruta');
Route::view()
php
Route::view('/bienvenida', 'welcome');
Route::prefix()
php
Route::prefix('admin')->group(function () {
Route::get('/dashboard', 'AdminController@dashboard');
});
Route::middleware()
php
Route::middleware('auth')->group(function () {
Route::get('/perfil', 'ProfileController@show');
});
Estos métodos permiten gestionar de manera eficiente el enrutamiento en Laravel, facilitando el manejo de diferentes tipos de solicitudes y la aplicación de lógica de negocio.
A menudo, se requiere capturar variables dentro de las URLs para procesar recursos específicos. Laravel permite manejar esto utilizando parámetros de rutas.
Ejemplo con parámetro dinámico:
php
Route::get('/productos/{id}', function ($id) {
return "Producto con ID: " . $id;
});
En este ejemplo, {id}
es un parámetro dinámico. Al acceder a /productos/1
, se mostrará "Producto con ID: 1". Los parámetros permiten gestionar recursos como usuarios, productos, etc.
Para mantener una aplicación más limpia y estructurada, es preferible usar controladores en lugar de definir la lógica directamente en las rutas. Los controladores permiten una mejor organización de las acciones relacionadas con las rutas.
Ejemplo de ruta vinculada a un controlador:
php
use App\Http\Controllers\ProductController;
Route::get('/productos', [ProductController::class, 'index']);
Aquí, el controlador ProductController
será el responsable de manejar la lógica cuando se acceda a la URL /productos
.
Laravel permite agrupar rutas que comparten un prefijo común o que requieren un middleware específico. Esto es útil para reducir la duplicación de código y aplicar reglas comunes a múltiples rutas.
Ejemplo de agrupar rutas con un prefijo:
php
Route::prefix('admin')->group(function () {
Route::get('/usuarios', [AdminController::class, 'index']);
Route::post('/usuarios', [AdminController::class, 'store']);
});
En este caso, ambas rutas compartirán el prefijo /admin
, por lo que se podrá acceder a ellas a través de las URLs /admin/usuarios
y /admin/usuarios/create
.
El uso de middleware en Laravel permite aplicar filtros o realizar validaciones antes de que una solicitud llegue a su destino. Los middleware son muy útiles para gestionar la autenticación, autorización y otros procesos previos a la ejecución de una acción.
Ejemplo de ruta con middleware:
php
Route::get('/perfil', [ProfileController::class, 'show'])->middleware('auth');
En este ejemplo, el middleware auth
verifica que el usuario esté autenticado antes de permitir el acceso a la ruta /perfil
.
Laravel ofrece rutas especializadas que pueden facilitar tareas comunes, como la redirección o la visualización de vistas.
Rutas de vista: Se utilizan para devolver directamente una vista sin necesidad de un controlador.
php
Route::view('/bienvenida', 'welcome');
En este caso, Laravel simplemente devolverá la vista welcome
.
Rutas de redirección: Permiten redirigir a los usuarios de una URL a otra de manera sencilla.
php
Route::redirect('/old-url', '/new-url');
Este código redirige de /old-url
a /new-url
sin requerir lógica adicional.
A medida que la aplicación crece, es importante organizar bien las rutas. Laravel permite modularizar las rutas creando archivos adicionales en el directorio routes/
. Por ejemplo, puedes separar rutas de la API en un archivo api.php
.
Además, si utilizas controladores con recursos CRUD completos, Laravel te permite generar automáticamente todas las rutas necesarias con un solo comando utilizando Route::resource()
.
Ejemplo de uso de Route::resource
:
php
Route::resource('usuarios', UserController::class);
Esto crea rutas para las operaciones CRUD (crear, leer, actualizar y eliminar) sin tener que declararlas manualmente.
996 visitas
Capítulo – Creación de controladores »
-
© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024