В Laravel 5.3 маршруты API были перенесены в файл api.php. Но как я могу вызвать маршрут в файле api.php? Я пробовал создать такой маршрут:
Route::get('/test',function(){
return "ok";
});
Я пробовал следующие URL-адреса, но оба вернули исключение NotFoundHttpException:
http://localhost:8080/test/public/test
http://localhost:8080/test/public/api/test
Как я могу вызвать этот маршрут API?
Ответы:
Вы называете это
http://localhost:8080/api/test ^^^
Если вы посмотрите,
app/Providers/RouteServiceProvider.php
то увидите, что по умолчанию он устанавливаетapi
префикс для маршрутов API, который вы, конечно, можете изменить, если хотите.protected function mapApiRoutes() { Route::group([ 'middleware' => 'api', 'namespace' => $this->namespace, 'prefix' => 'api', ], function ($router) { require base_path('routes/api.php'); }); }
источник
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
я пробовал localhost / app / api / user, но не работалapp
сегмент из вашего URI. Он должен выглядеть по линииlocalhost/api/user
Если вы хотите настроить это или добавить свои собственные отдельные файлы маршрутов, посмотрите App \ Providers \ RouteServiceProvider для вдохновения.
https://mattstauffer.co/blog/routing-changes-in-laravel-5-3
источник
маршруты / api.php
Route::get('/test', function () { return response('Test API', 200) ->header('Content-Type', 'application/json'); });
Сопоставление определяется в поставщике услуг 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'); }); }
источник