Page 134 - 0149-curso-laravel-5_Neat
P. 134
Laravel 5
Ruta Método Filtro Controlador / Método
/api/v1/catalog GET APICatalogController@index
/api/v1/catalog/{id} GET APICatalogController@show
/api/v1/catalog POST auth.basic.once APICatalogController@store
/api/v1/catalog/{id} PUT auth.basic.once APICatalogController@update
/api/v1/catalog/{id} DELETE auth.basic.once APICatalogController@destroy
/api/v1/catalog/{id}/rent PUT auth.basic.once APICatalogController@putRent
/api/v1/catalog/{id}/return PUT auth.basic.once APICatalogController@putReturn
Como se ve en la tabla, tenemos que definir todas las rutas RESTful para el catálogo,
además de dos especiales: /rent y /return . Todas las rutas estarán protegidas con
contraseña (usando autenticación HTTP básica sin estado) a excepción de index y show
que serán públicas. Tenéis que comprobar que las rutas y filtros sean los correctos usando
el método de Artisan php artisan route:list .
Pista 1: Recuerda que las rutas de una API las tienes que definir dentro del fichero de
rutas routes/api.php y que al incluirlas dentro de este fichero automáticamente se
añade el prefijo api , por lo que en este caso tendrás que indicar la URL solamente a
partir de v1 .
Pista 2: El middleware "auth.basic.once" de autenticación básica sin estado no viene
definido con Laravel por defecto. Para añadirlo tenéis que seguir las instrucciones
indicadas en el apartado "Autenticación HTTP básica sin estado" de la teoría.
Pista 3: Para poder aplicar un filtro solamente a algunos de los métodos del controlador
tendréis que separar la declaración de las rutas. Para esto podéis utilizar el tercer
parámetro con las opciones only y except .
A continuación tenéis que añadir el nuevo controlador APICatalogController usando el
comando de Artisan que genera el controlador de recurso junto con todos los métodos
RESTful. Las acciones y contenidos de los métodos serán muy similares a los de
CatalogController , pero teniendo en cuenta que no tendremos que devolver una vista sino
directamente el contenido de la consulta en formato JSON. Por ejemplo, el método que
devuelve el listado de todas las películas sería simplemente:
public function index() {
return response()->json( Movie::all() );
}
Ejercicios 134