2017-01-25 11 views
0

私はAPI laravelプロジェクトを呼び出してフロントエンドとバックエンドを分離したいと思いますが、どうすればいいですか?
APIのすべてがroutes/api.phpに記載されていますが、ビューを返すジョブはまだroutes/web.phpにあるので、 は正常ですか?そうでない場合、私は何をすべきですか?
コード等...laravelを使ってAPIプロジェクトをビルドする

ルート/ web.php:

Route::get('/book/{id}',function(){ return view('book.show')->with('id',$id) ;}); 

show.blade.php:

... 
$(function(){ 
    $.ajax{ 
     url: 'api/book/{{ $id }}', 
     .... 
    } 
}); 
... 

ルート/ api.php:

//return the book data that id = {id}  
Route::get('/book/{id}','[email protected]'); 
+1

私は** APIを構築しているので**ルーメン**を使用することをお勧めしたいと思います。 [this](https://lumen.laravel.com/)をご覧ください –

+0

彼らはフロントエンドとバックエンドを求めています。ルーメンは、この状況のた​​めの悪い解決策です。 – Samsquanch

+0

APIを構築する場合は、フロントエンドフレームワークを使用して前進していると想定しています。したがって、Laravel全体を必要としません。 – devk

答えて

1

正しく使用しています。

ウェブとAPIのルートを分離するメリットの1つは、ミドルウェアの適用をより細かく制御できることです。

アプリ/ Kernel.phpファイルを見てみましょう:angad-Dubeyさんは、フロントエンドとウェブ取引とのAPIのルートとなるようにそれらを分離するために、その優れた実践を述べた@として

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    '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, 
     \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
     'bindings', 
    ], 
]; 
0

を。 .. Apiが呼びます。

ルートフォルダ内にadmin.phpを追加して私のバックエンドルートもまた分離されるように、私はさらに鉱山を分ける傾向があります。したがって、検索するルートリストが長いファイルが1つもありません。上記のように、あなたはそれらに他のミドルウェアを追加することができますが、それは長期的に問題を引き起こす可能性があります。

関連する問題