Laravel API Toolkit
— laravel, api, api rest, toolkit — 1 minutos de lectura
¿Qué es Laravel API Toolkit?
Laravel API Toolkit es un conjunto de herramientas que te ayudará a supercargar tu desarrollo de API con respuestas estandarizadas, paginación dinámica y mucho más. Actualmente, soporta las siguientes características:
- Soporte de esquemas
- Ayudantes de paginación
- Comando generador de API
- Filtrado de API
- Acciones
- Ayudantes de medios
¿Cómo usar Laravel API Toolkit?
Usando el comando api:generate
proporcionado, puedes generar fácilmente todos los archivos clave necesarios, incluyendo controlador, solicitudes, recursos, modelos, migraciones, etc¹.
1php artisan api:generate Customer \2 "username:string|age:integer:nullable|company_id:foreignId|status:enum(new,old)" \3 --all
Después de ejecutar el comando anterior, se crean los siguientes archivos, dándote todo lo que necesitas para empezar a construir la API:
Filtrado en Laravel API Toolkit
El filtrado es otra característica útil en este paquete, que te da la capacidad de definir en qué campos puedes filtrar.
1namespace App\Models;2
3use Essa\APIToolKit\Filters\Filterable;4
5class Car extends Model6{7 use Filterable;8
9 protected string $default_filters = CarFilters::class;10
11 // Más código del modelo...12}
Y la clase CarFilters
podría verse así:
1namespace App\Filters;2
3use Essa\APIToolKit\Filters\QueryFilters;4
5class CarFilters extends QueryFilters6{7 protected array $allowedFilters = ['color', 'model_id'];8
9 protected array $columnSearch = [];10}11
12// GET /cars?color=red
Acciones en Laravel API Toolkit
Las acciones son otra característica que puedes usar en este paquete para encapsular la lógica empresarial.
1namespace App\Actions;2
3class CreateCar4{5 public function execute($data)6 {7 // ...8 }9}10
11// Ejemplo de uso en un controlador12public function store(Request $request)13{14 $this->createCar->execute($request->all());15}
Despedida
¡Eso es todo! Ahora tienes una comprensión básica de cómo usar Laravel API Toolkit para crear una API REST en Laravel.