Sin problema, puedes usar el método apiResource de Route. El código que tienes que escribir en el archivo de rutas de api.php es el siguiente:
Route::apiResource('customers', CustomerController::class);
No te olvides de importar el controlador en la página del archivo de rutas. Esto suponiendo que el controlador CustomerController
ya exista.
Nota que existe otro método que se llama
Route::resource
pero este método no es el más adecuado porque te crea rutas que no vas a utilizar en un API, como la ruta que hace el mostrado de un supuesto formulario donde se escribirían los datos de un recurso que quieres dar de alta. Eso no forma parte del API.
Además, dicho sea de paso, para que te encajen todas las rutas con los métodos adecuados del controlador, en el caso que las rutas de recurso las hayas hecho todas de una, se recomienda que crees un controlador de recurso también.
Esto lo consigues con este comando de Artisan:
php artisan make:controller CustomerController --api
Nota que hay otro comando similar de Artisan que te crea todos los métodos de un recurso sin ser de API.
php artisan make:controller CustomerController -r
. El problema de este comando es que te crea métodos que no vas a necesitar. Los puedes borrar y listo, pero es más cómodo crear de entrada los métodos del API.
Una vez creadas estas rutas si haces un php artisan route:list
verás todo el listado de rutas que se han creado para tu recurso. El listado completo de rutas que se han creado lo tienes aquí.
GET|HEAD api/customers .............. customers.index › CustomerController@index
POST api/customers .............. customers.store › CustomerController@store
GET|HEAD api/customers/{customer} ... customers.show › CustomerController@show
PUT|PATCH api/customers/{customer} ... customers.update › CustomerController@update
DELETE api/customers/{customer} ... customers.destroy › CustomerController@destroy
De todos modos, habría que valorar la posiblidad de escribir las rutas a mano porque hay equipos de desarrollo que prefieren tener los controladores de cada endpoint independientes. Sobre todo en el caso que tengas que escribir la documentación de los endpoints en el propio controlador puede ser interesante que lo tengas por separado por la cantidad de código y por la trazabilidad.