Page 122 - 0149-curso-laravel-5_Neat
P. 122

Laravel 5




                class PhotoController extends Controller {
                    public function __construct() {
                        $this->middleware('auth');
                        $this->middleware('log', ['only' => ['store', 'update', 'destroy']]);
                    }
                }



             Definir una API mediante controladores


             RESTful



             Si queremos definir una API, ya sea mediante controladores tipo RESTful o controladores
             normales, es recomendable que utilicemos el fichero de rutas   routes/api.php  en lugar de

               routes/web.php . En este fichero las rutas se definen exactamente de la misma forma que
             hemos estado viendo hasta ahora, usando la clase   Route , los métodos   get ,   post ,   put
             y   delete , los controladores de recursos, los grupos de rutas, middleware, parámetros, etc.
             Además, al ejecutar el comando   php artisan route:list  estas rutas aparecerán en el

             mismo listado. Por lo que... ¿en qué se diferencian? Las diferencias entre estos ficheros de
             rutas son dos:

                  Los filtros o middleware que se utilizan: Mientras que en   routes/web.php  se aplican

                  filtros para inicializar la sesión, las cookies, los bindings y la protección CSRF; en las
                  rutas que se añadan a   routes/api.php  únicamente se aplican filtros para limitar el
                  número de peticiones y para cargar los bindings (la inyección de dependencias). Esto lo
                  podemos ver si editamos el fichero   app/Http/Kernel.php , donde dentro de su array

                   $middlewareGroups  veremos dos grupos:   web  y   api , con los filtros que se aplican en
                  cada caso.
                  El prefijo de las rutas: A todas las rutas que especifiquemos en   routes/api.php  se les
                  añadirá el prefijo   api . Por lo que si añadimos la ruta   users  para devolver el listado

                  de usuarios, para realizar la consulta tendremos que acceder a   api/users . Esto lo
                  podemos comprobar en el listado de rutas que muestra Artisan.

             Estas diferencias aportan varias ventajas, por un lado tenemos separadas todas las rutas
             de la API tanto en un fichero distinto como por un prefijo, por lo que no se mezclarán los

             distintos tipos de rutas de nuestro sitio web. Además, las peticiones a las rutas de la API no
             tienen que cargar middleware innecesario, permitiéndonos también definir otros filtros
             propios de una API, como el de rate limit. Las peticiones a estas rutas no mantendrán

             sesión, por lo tanto se tendrán que autenticar bien mediante tokens o mediante seguridad
             HTTP básica (usando las cabeceras de la petición). Además, en las respuestas no
             tendremos que devolver una vista (con HTML), sino directamente el dato o la lista de datos
             solicitados en formato plano, en XML o en JSON.





             Controladores de recursos RESTful                                                          122
   117   118   119   120   121   122   123   124   125   126   127