Como sabemos Laravel tiene una carpeta donde guarda todas las rutas del proyecto routes, por defecto esta carpeta tiene 4 archivos api.php, channels.php, console.php y web.php.

 

Tener dichos archivos por defecto está bien, sí tenemos una aplicación pequeña o mediana, pero si nuestro proyecto es grande y cuenta con más de 200, 500 o 1000 rutas; La opción por defecto con la que viene Laravel ya no va a ser la más optima para trabajar, va a ser más difícil mantener el desarrollo del enrutamiento de nuestra aplicación.

 

Para ello voy a compartirles una práctica muy sencilla, pero que ha hecho mi vida más fácil al trabajar con otros colaboradores en el proyecto.

 

Para este ejemplo vamos a separar las rutas que están dentro del archivo api.php. Primero vamos a crear las siguientes carpetas /routes/api/v1.

 

Ahora vamos a asumir que tenemos una API que gestiona datos de un inventario, para esto creamos un archivo diferente para cada entidad o módulo que consideremos: cars.php, bicycles.php, pants.php, etc. dentro de cada archivo definimos sus respectivas rutas normalmente como lo especifica la documentación de Laravel Routes.

 

Ahora en nuestro archivo principal routes/api.php lo editamos y llamamos los archivos de la siguiente manera:

 

Route::namespace('Api')->group(function() {

    Route::prefix('v1')->namespace('V1')->group(function() {
       include_once 'api/v1/cars.php';
       include_once 'api/v1/bicycles.php';
       include_once 'api/v1/pants.php';
       // otros archivos
    });

});

 

Con esto cada archivo puede tener su propio namespace o prefix lo que hará que nuestro proyecto esté un poco más organizado y podamos encontrar cada item fácilmente, además facilita el trabajo en equipo mediante Git.

 

Autenticación REST API con Laravel 5.5 Passport