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)
// 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 URLPuedes nombrarlo como quieras, pero
ides descriptivoMovieController@show: Llama al métodoshowdel controlador
2. Crear el método show en MovieController
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ámetroiddesde la rutaMovie::find($id): Busca la película con el ID proporcionadoRetorna solo un objeto (no un array)
3. Probar el endpoint
Refrescar el navegador para ver que todo sigue funcionando
Acceder a una película específica:
http://localhost:8000/movies/4Donde
4es el ID de la película que queremos consultarRetorna solo esa película en particular
4. Diferencia en la respuesta
Endpoint anterior (GET /movies): Retorna un array de películas
[ { "id": 1, "title": "..." }, { "id": 2, "title": "..." } ]Nuevo endpoint (GET /movies/{id}): Retorna un solo objeto
{ "id": 4, "title": "Nombre de la película", "description": "...", "year": 2023 }
Resumen
Con solo estos pequeños cambios:
Agregamos una ruta dinámica con
{id}Creamos el método
showen el controladorUsamos
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
Publicar un comentario