Dans Laravel 5.3, les itinéraires d'API ont été déplacés dans le fichier api.php. Mais comment puis-je appeler une route dans un 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?
Vous l'appelez par
_http://localhost:8080/api/test
^^^
_
Si vous regardez dans app/Providers/RouteServiceProvider.php
, vous constaterez que par défaut, il définit le préfixe api
pour les itinéraires d'API, que vous pouvez 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');
});
}
_
Si vous souhaitez personnaliser cela ou ajouter vos propres fichiers de routes distincts, consultez App\Providers\RouteServiceProvider pour trouver l'inspiration.
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');
});
}