Как использовать маршруты API в Laravel 5.3

94

В 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?

gw0
источник
Он работает: localhost / myproject / public / api / test
Мухаммад Шахзад

Ответы:

174

Вы называете это

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');
    });
}
Петерм
источник
Есть идеи, как это назвать в laravel 5.4? Маршрут api по умолчанию: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); я пробовал localhost / app / api / user, но не работал
utdev
@utdev Ты точно так же используешь. Удалите appсегмент из вашего URI. Он должен выглядеть по линииlocalhost/api/user
peterm
1

маршруты / 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');
    });
}
Чандракант Ганджи
источник