web-dev-qa-db-ja.com

Laravel 5.3でAPIルートを使用する方法

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ルートを呼び出すにはどうすればいいですか?

85
gw0

あなたはそれをと呼びます

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');
    });
}
162
peterm

これをカスタマイズしたり、独自のルートファイルを追加したい場合は、App\Providers\RouteServiceProviderを調べてください。

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

5
macieks

routes/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');
    });
}
1