Optimización de tus rutas API en Laravel: el método apiResource
- Publicado el 25 noviembre, 2024
- Palabras: 140
¿Alguna vez te has encontrado excluyendo manualmente rutas de tus plantillas HTML al crear una API? ¡El método apiResource de Laravel está aquí para hacerte la vida más fácil! Veamos cómo esta función puede optimizar las definiciones de rutas de tu API.

#Conceptos básicos de apiResource
En lugar de utilizar el método resource estándar y excluir rutas, puede utilizar apiResource:
use AppHttpControllersPhotoController;
Route::apiResource('photos', PhotoController::class);
Esto excluye automáticamente las rutas create y edit que normalmente se utilizan para formularios HTML.
#Trabajar con múltiples recursos de API
¿Necesitas registrar varios recursos de API? El método apiResources te ayudará:
use AppHttpControllersPhotoController;
use AppHttpControllersPostController;
Route::apiResources([
'photos' => PhotoController::class,
'posts' => PostController::class,
]);
#Creación rápida de controladores
Laravel también proporciona una forma conveniente de crearcontroladores específicos de API:
php artisan make:controller PhotoController --api
Este comando crea un controlador sin los métodos create y edit, perfecto para recursos de API.
#Ejemplo práctico
A continuación se explica cómo configurar una API para una plataforma de redes sociales:
use AppHttpControllersApiPostController;
use AppHttpControllersApiCommentController;
use AppHttpControllersApiUserController;
class ApiRouteProvider extends ServiceProvider
{
public function boot()
{
Route::prefix('api/v1')->group(function () {
Route::apiResources([
'posts' => PostController::class,
'comments' => CommentController::class,
'users' => UserController::class
]);
});
}
}
Esto configura las siguientes rutas para cada recurso:
- GET /api/v1/posts (index)
- POST /api/v1/posts (store)
- GET /api/v1/posts/{post} (show)
- PUT/PATCH /api/v1/posts/{post} (update)
- DELETE /api/v1/posts/{post} (destroy)
El método apiResource te ayuda a crear API RESTful limpias y a la vez seguir las convenciones de Laravel. Es una pequeña característica que puede ahorrarte tiempo y mantener tus rutas organizadas.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión