Ejercicio de programación con Laravel: Reto API REST crud tareas

Proyecto
Práctica
1h 30m

Aprende a crear un controlador REST en Laravel para gestionar tareas con CRUD, validación y respuestas JSON. Ejercicio práctico para dominar APIs.

Genera un nuevo controlador de recursos para gestionar tareas utilizando el comando Artisan:

Define el modelo Tarea con sus migraciones correspondientes. La tabla debe incluir campos para título, descripción, estado (enum: pendiente, en progreso, completada) y fecha límite. Ejecuta las migraciones para crear la tabla en la base de datos.

Registra las rutas para el controlador de recursos en el archivo routes/api.php utilizando Route::resource. Asegúrate de que todas las rutas devuelvan respuestas JSON.

Implementa el método index() en el controlador para listar todas las tareas. Añade la funcionalidad para filtrar por estado utilizando parámetros de consulta (query parameters).

Desarrolla el método store() para crear nuevas tareas. Incluye validación para todos los campos requeridos y devuelve la tarea creada con un código de estado 201.

Implementa el método show() para mostrar una tarea específica por su ID. Maneja el caso en que la tarea no exista, devolviendo un error 404.

Crea los métodos update() y destroy() para actualizar y eliminar tareas respectivamente. El método update debe diferenciar entre solicitudes PUT (actualización completa) y PATCH (actualización parcial).

Añade manejo de excepciones personalizado para capturar errores comunes y devolver respuestas JSON apropiadas.

Prueba todas las rutas de la API utilizando herramientas como Postman o cURL para verificar que funcionan correctamente.

Documenta cada método del controlador con comentarios que expliquen su propósito, parámetros esperados y posibles respuestas.

Empezar ejercicio de programación

Más ejercicios de programación con Laravel

Evalúa tus conocimientos en Laravel con más ejercicios de programación de tipo Test, Puzzle, Código y Proyecto con VSCode.

Tecnologías de este ejercicio de programación

Entornos de desarrollo para este ejercicio

Image

Visual Studio Code

Image

GitHub