Continuemos.
Ahora es el momento de preparar las rutas de la aplicación que van a hacer que la magia funcione.
Para ello, en Laravel disponemos de los archivos situados en la carpeta “routes”, que de momento los que nos interesan son los archivos “api.php” y “web.php”. La diferencia entre cada uno de ellos es que la ruta de acceso será diferente, para la api todas las rutas incluirán al inicio la ruta “/api/” y los de web no la incluirán.
Dicho esto, y para separar mejor las rutas de la api y las diferentes modifcaciones, voy a tomar la costumbre de nombrar las llamadas con la versión de la API que utilice, “v1”, “v2”, etc… así será más sencillo luego a la hora de documentarlo.
Bien, para incluir todas las rutas del manejo de usuarios creadas en el anterior post, hemos de incluir en el archivo “web.php” lo siguiente:
Route::group(
[
'prefix' => 'v1',
'middleware' => 'auth:api'
],
function () {
Route::resource(
'users',
'UsersController',
['only' => ['index', 'store', 'update', 'destroy', 'show']]
);
Route::post(
'login',
'LoginController@login'
);
}
);
(Lo sé, ya estoy incluyendo la ruta de login y algunas cosas más, que detallaré después.
Con esto conseguimos que cuando se efectue la llamada a nuestros metodos a través de la ruta “/v1/users” reaccionen igual que hasta ahora.
Así que, al final, si ejecutamos el comando para ver las rutas conseguiremos algo como esto:
+--------+-----------+-----------------+---------------+----------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-----------------+---------------+----------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/users | | Closure | api,auth:api |
| | POST | v1/login | | App\Http\Controllers\LoginController@login | web,auth:api |
| | GET|HEAD | v1/users | users.index | App\Http\Controllers\UsersController@index | web,auth:api |
| | POST | v1/users | users.store | App\Http\Controllers\UsersController@store | web,auth:api |
| | GET|HEAD | v1/users/{user} | users.show | App\Http\Controllers\UsersController@show | web,auth:api |
| | PUT|PATCH | v1/users/{user} | users.update | App\Http\Controllers\UsersController@update | web,auth:api |
| | DELETE | v1/users/{user} | users.destroy | App\Http\Controllers\UsersController@destroy | web,auth:api |
+--------+-----------+-----------------+---------------+----------------------------------------------+--------------+
Y modificando o añadiendo las rutas que queramos podremos ir montando nuestra api con los modulos necesarios.
