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
   129   130   131   132   133   134   135