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.