99 votes

Comment utiliser les routes d'API dans Laravel 5.3

Dans Laravel 5.3, les routes API ont été déplacées dans le fichier api.php. Mais comment puis-je appeler une route dans le fichier api.php ? J'ai essayé de créer une route comme ceci :

Route::get('/test',function(){
     return "ok"; 
});

J'ai essayé les URL suivantes, mais toutes deux ont renvoyé l'exception NotFoundHttpException :

  • http://localhost:8080/test/public/test
  • http://localhost:8080/test/public/api/test

Comment puis-je appeler cette route API ?

0 votes

183voto

peterm Points 72466

Vous l'appelez par

http://localhost:8080/api/test
                      ^^^

Si vous regardez dans app/Providers/RouteServiceProvider.php vous verrez que, par défaut, il définit l'option api pour les routes API, que vous pouvez bien sûr modifier si vous le souhaitez.

protected function mapApiRoutes()
{
    Route::group([
        'middleware' => 'api',
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

0 votes

Une idée de comment appeler cela dans Laravel 5.4 ? La route api par défaut : Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); J'ai essayé localhost/app/api/user mais cela n'a pas fonctionné.

0 votes

@utdev Vous utilisez exactement la même chose. Supprimez app de votre URI. Il devrait ressembler à ceci localhost/api/user

5voto

macieks Points 85

Si vous souhaitez personnaliser ce système ou ajouter vos propres fichiers de routes séparés, consultez App \Providers\RouteServiceProvider pour l'inspiration

https://mattstauffer.co/blog/routing-changes-in-laravel-5-3

1voto

Routes/api.php

Route::get('/test', function () {
    return response('Test API', 200)
                  ->header('Content-Type', 'application/json');
});

Le mappage est défini dans l'App du fournisseur de services \Providers\RouteServiceProvider

protected function mapApiRoutes(){
    Route::group([
        'middleware' => ['api', 'auth:api'],
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

-1voto

Rahul Tathod Points 153

http://localhost:8080/api/test préfixe api ajouté par laravel pour toutes les api écrites dans api.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X