CRUD utilizando la API¶
Para trabajar con la API y todo lo que tiene que ver con el CRUD, necesitaremos tener los modelos de lo que queramos consumir de nuestra API. Esto es importante tenerlo en cuenta, pues de otro modo no podremos hacer uso de estas funcionalidades. Además, tendremos que tener presente los requests
que ya tengamos en nuestra aplicación. Lo que nos va a cambiar, como ya hemos comentado, es la manera en la que se entregan los datos pero en esencia es lo mismo.
Preparando el controlador¶
A la hora de tener nuestro controlador para consumir la API debemos hacer algo similar a lo que ya implementamos. Por eso aprovechando el ejemplo de las categorías de un blog, sería algo parecido a lo siguiente:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Requests\Category\PutRequest;
use App\Http\Requests\Category\StoreRequest;
use App\Http\Controllers\Controller;
use App\Models\Category;
class CategoryController extends Controller
{
public function index()
{
return response()->json(Category::paginate(10));
}
public function store(StoreRequest $request)
{
return response()->json(Category::create($request->validated()));
}
public function show(Category $category)
{
return response()->json($category);
}
public function update(PutRequest $request, Category $category)
{
$category->update($request->validated());
return response()->json($category);
}
public function destroy(Category $category)
{
$category->delete();
return response()->json('ok');
}
}
Si miras con atención, verás que no es más que mandar la información en formato JSON. Puede que en algún desarrollo quieras mostrar o editar parte de la información, este es el momento de programarlo.
Consideraciones
- Vigila las importaciones y que tengas todas las dependencias creadas. Puede que te falte algún
StoreRequest
o algún fichero para que todo funcione correctamente. - Los métodos
index()
yedit()
no tienen sentido que los implementemos en la API, al ser métodos pensados para devolver una vista o un formulario.
Actividades¶
-
AC 805. (RA7 / CE7e / IC1 / 3p) - En el proyecto de la lista de tareas, adapta el controlador de Tarea para que se puedan crear, borrar y editar.
-
PR 806. (RA7 / CE7e CE7h / IC2 / 5p) - El encargado de la tienda necesita que le prepares la API para que el ERP pueda crear, borrar y editar productos.
-
RE 807. (RA7 / CE7a CE7b CE7c CE7d CE7e CE7h / IC2 / 10p) - Durante esta fase se inicia el desarrollo técnico del Reto 04, en el que se implementará una API REST para una red social utilizando Laravel. El objetivo inicial es activar correctamente el soporte para API en el proyecto y establecer una primera arquitectura funcional basada en el patrón MVC adaptado a API.
Durante esta fase deben completarse las siguientes tareas:
- La API debe estar activada correctamente en el entorno Laravel configurado.
- Se han definido las rutas necesarias para acceder al recurso principal (por ejemplo, publicaciones).
- Se ha creado al menos un controlador de tipo API que permita obtener un listado de publicaciones.
- Se han implementado las primeras pruebas de conexión con Postman para asegurar el acceso a los endpoints.
- La estructura general del proyecto debe seguir el modelo MVC, sin utilizar vistas, y con los controladores centrados en la lógica de negocio.
Esta fase sienta las bases para el desarrollo posterior del reto, asegurando que la arquitectura esté bien definida y lista para incorporar nuevas funcionalidades.