Inicio » Curso de Laravel básico

Curso de Laravel básico

Definición de rutas y métodos HTTP.

Capítulo 4 ➜ 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.


1004 visitas

Capítulo – Creación de controladores »

Autoevaluación 04

-

1. ¿Qué función se utiliza para definir una ruta de tipo GET en Laravel?

2. ¿Qué método HTTP se utiliza generalmente para crear un nuevo recurso?

3. ¿Dónde se definen las rutas que serán accedidas a través del navegador?

4. ¿Cuál de los siguientes métodos HTTP es utilizado para eliminar un recurso?

5. ¿Qué función se utiliza para definir una ruta con un parámetro dinámico?

6. ¿Qué operador se utiliza para agrupar rutas bajo un mismo prefijo?

7. ¿Cuál es el propósito del middleware en una ruta?

8. ¿Cuál es el método utilizado para definir rutas que manejan múltiples métodos HTTP?

9. ¿Qué tipo de rutas se utilizan para devolver una vista directamente sin lógica adicional?

10. ¿Qué hace la función Route::redirect()?

11. ¿Cuál es la forma correcta de definir una ruta con middleware de autenticación?

12. ¿Qué método HTTP es utilizado para actualizar un recurso existente de manera completa?

13. ¿Qué método HTTP permite realizar actualizaciones parciales de un recurso?

14. ¿Cuál es el comando para definir automáticamente todas las rutas CRUD de un controlador?

15. ¿Qué se necesita para capturar un parámetro en la URL?

16. ¿Cuál de las siguientes no es una característica de las rutas en Laravel?

17. ¿Cuál es la sintaxis para definir una ruta con un prefijo 'admin'?

18. ¿Qué hace Route::any() en Laravel?

19. ¿Qué archivo se utiliza para definir rutas específicas de la API en Laravel?

20. ¿Qué comando de Artisan crea un nuevo controlador en Laravel?


{ Curso de Laravel básico }


Compartir link con tus amigos

Codea Applications

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

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024