7-GET de una Película por Id

 

Objetivo

Crear un endpoint para obtener una película específica por su ID.

Duración

Esta clase será rápida ya que reutilizaremos gran parte del código existente, agregando solo la funcionalidad para recibir un parámetro.

Pasos

1. Modificar el archivo de rutas (routes.php)

php
// Copiar esta línea (similar a la del video anterior)
$router->get('/movies/{id}', 'MovieController@show');

Explicación:

  • {id}: Parámetro dinámico que recibiremos en la URL

  • Puedes nombrarlo como quieras, pero id es descriptivo

  • MovieController@show: Llama al método show del controlador

2. Crear el método show en MovieController

php
public function show($id)
{
    // Buscar la película específica por su ID
    $movie = Movie::find($id);
    
    // Retornar la película encontrada
    return response()->json($movie);
}

Explicación:

  • show($id): Recibe el parámetro id desde la ruta

  • Movie::find($id): Busca la película con el ID proporcionado

  • Retorna solo un objeto (no un array)

3. Probar el endpoint

  1. Refrescar el navegador para ver que todo sigue funcionando

  2. Acceder a una película específicahttp://localhost:8000/movies/4

    • Donde 4 es el ID de la película que queremos consultar

    • Retorna solo esa película en particular

4. Diferencia en la respuesta

  • Endpoint anterior (GET /movies): Retorna un array de películas

    json
    [
      { "id": 1, "title": "..." },
      { "id": 2, "title": "..." }
    ]
  • Nuevo endpoint (GET /movies/{id}): Retorna un solo objeto

    json
    {
      "id": 4,
      "title": "Nombre de la película",
      "description": "...",
      "year": 2023
    }

Resumen

Con solo estos pequeños cambios:

  1. Agregamos una ruta dinámica con {id}

  2. Creamos el método show en el controlador

  3. Usamos find() para buscar por ID específico

Ahora tenemos la capacidad de obtener tanto todas las películas como una película específica según su ID.

Comentarios

Entradas más populares de este blog

Axios para Principiantes - Guía Paso a Paso

15-Tutorial: Crear Película en React con useState

Tutorial de React para Principiantes