Definición de rutas y métodos HTTP.
Capitulo 4 del Módulo 2 Rutas y Controladores

➜ Definición de rutas y métodos HTTP.

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.


Concepto de Rutas (Route)

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".


Métodos de rutas HTTP en Laravel:

  1. Route::get()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo GET.
    • Uso común: Para recuperar y mostrar información.
    • Ejemplo:
      php
      
      Route::get('/productos', 'ProductController@index'); 
  2. Route::post()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo POST.
    • Uso común: Para crear un nuevo recurso o enviar datos.
    • Ejemplo:

      php

      Route::post('/productos', 'ProductController@store'); 
  3. Route::put()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo PUT.
    • Uso común: Para actualizar completamente un recurso existente.
    • Ejemplo:

      php

      Route::put('/productos/{id}', 'ProductController@update'); 
  4. Route::patch()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo PATCH.
    • Uso común: Para realizar una actualización parcial de un recurso.
    • Ejemplo:

      php

      Route::patch('/productos/{id}', 'ProductController@updatePartial'); 
  5. Route::delete()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo DELETE.
    • Uso común: Para eliminar un recurso.
    • Ejemplo:

      php

      Route::delete('/productos/{id}', 'ProductController@destroy'); 
  6. Route::options()

    • Descripción: Define una ruta que responde a solicitudes HTTP de tipo OPTIONS.
    • Uso común: Para consultar las opciones de comunicación disponibles en un recurso.
    • Ejemplo:

      php

      Route::options('/productos', 'ProductController@options'); 

Métodos adicionales en Laravel:

  1. Route::any()

    • Descripción: Define una ruta que responde a cualquier tipo de solicitud HTTP.
    • Uso común: Para manejar múltiples tipos de solicitudes en una sola ruta.
    • Ejemplo:

      php

      Route::any('/contacto', 'ContactController@handle'); 
  2. Route::match()

    • Descripción: Define una ruta que responde a múltiples tipos específicos de solicitudes HTTP.
    • Uso común: Para aceptar solo ciertos tipos de solicitudes en una ruta.
    • Ejemplo:

      php

      Route::match(['get', 'post'], '/buscar', 'SearchController@find'); 
  3. Route::redirect()

    • Descripción: Redirige automáticamente de una URL a otra.
    • Uso común: Para realizar redirecciones rápidas sin lógica adicional.
    • Ejemplo:

      php

      Route::redirect('/antigua-ruta', '/nueva-ruta'); 
  4. Route::view()

    • Descripción: Define una ruta que devuelve una vista directamente sin pasar por un controlador.
    • Uso común: Para mostrar vistas simples sin lógica de negocio.
    • Ejemplo:

      php

      Route::view('/bienvenida', 'welcome'); 

Agrupación y prefijos:

  1. Route::prefix()

    • Descripción: Agrupa rutas bajo un prefijo común.
    • Ejemplo:

      php

      Route::prefix('admin')->group(function () {
           Route::get('/dashboard', 'AdminController@dashboard'); 
      }); 
  2. Route::middleware()

    • Descripción: Aplica un middleware a un conjunto de rutas.
    • Ejemplo:

      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.


Parámetros de Rutas

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.


Rutas con Controladores

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.


Agrupación de Rutas

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.


Middleware en Rutas

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.


Tipos Especiales de Rutas

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.


Organización de Rutas

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.


1366 visitas

Capítulo 5 – Creación de controladores »


{ Curso Curso de Laravel básico }


Compartir link con tus amigos

¡Qué aprenderás?

tooltip bs-tooltip-top bs-tooltip-end bs-tooltip-bottom bs-tooltip-start show fade tooltip-inner

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú