2016-09-10 7 views
10

私はあなたに愚かに聞こえるかもしれない質問がありますので、私を許してください。apiまたはweb Laravel 5.3

routes/api.phpファイルはいつ使用するのですか。

ajaxを使用してデータテーブルからレコードを削除する場合は、別のコントローラを作成してapi.phpにルートを設定する必要がありますか、他のすべてのコントローラで使用することができますweb.php?

答えて

11

Laravelのドキュメントを赤で表示しているか、Laravelに慣れているかわかりませんが、Laravel 5.3ではウェブルートとAPIルートで区切られたファイルがあります。

apiルートは、APIを登録するためにのみ使用します(つまり、残りのAPIサービスを構築する場合)。ここに配置されたすべてのルートには、デフォルトで/ apiが付加されます。つまり、apiファイル内にroute/userを定義すると、自動的に/ apiという接頭辞が付けられ、エンドポイントはwww.yourapplication.com/api/userになります。

休憩APIサービスなどを構築していない場合、このファイルをまったく使用しないでください。すべてのアプリケーションルートを定義するためにWebファイルを使用してください。

ウェブサイトやAPIルートを含むLaravel 5.3の新しい変更点を紹介しているLaracastのウェブサイトもご覧ください。これがあなたに役立つように願っています。

5

api.phpに置かれたルートもbernaddで言及された/ API、前置され、他の違いがあることすべて:このリンク(https://mattstauffer.co/blog/routing-changes-in-laravel-5-3)で あなたはlaravelコードでAPIとWebとの違いを見つけることができます:

のApp \プロバイダ\ RouteServiceProviderで

'web' => [ 
      \App\Http\Middleware\EncryptCookies::class, 
      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
      \Illuminate\Session\Middleware\StartSession::class, 
      \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
      \App\Http\Middleware\VerifyCsrfToken::class, 
      \Illuminate\Routing\Middleware\SubstituteBindings::class, 
     ], 

    'api' => [ 
      'throttle:60,1', 
      'bindings', 
     ], 
:に "$ middlewareGroupsを保護された" Kernel.php \アプリケーション\ HTTPでは

public function map() 
    { 
     $this->mapApiRoutes(); 

     $this->mapWebRoutes(); 

     // 
    } 

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

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

あなたは、この見ることができます

そして: で設定\ auth.php:このファイルのコメントでは、あなたが明確にデフォルトの「認証」の違いを見つけることができます対(「ガード」=>「ウェブ」)「AUTH:API」