Comment utiliser les routes API dans Laravel 5.3


93

Dans l'API Laravel 5.3, les routes 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 un itinéraire comme celui-ci:

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

J'ai essayé les URL suivantes mais les 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?


Réponses:


173

Vous l'appelez par

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

Si vous regardez, app/Providers/RouteServiceProvider.phpvous verrez que par défaut, il définit le apipréfixe des routes API, que vous pouvez bien sûr changer si vous le souhaitez.

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

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

@utdev Vous utilisez exactement la même chose. Supprimez le appsegment de votre URI. Cela devrait ressembler àlocalhost/api/user
peterm


1

routes / api.php

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

Le mappage est défini dans le fournisseur de services App \ Providers \ RouteServiceProvider

protected function mapApiRoutes(){
    Route::group([
        'middleware' => ['api', 'auth:api'],
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.