4

API への AJAX 呼び出しも行う Web サイト用のリソース コントローラーを作成した後、リソース コントローラーPhotosControllerは通常の Web サイトと API の両方で使用できるようです。

Photoこれはid = 1の HTML ページを表示します

http://domain.com/photos/1

Javascript は以下を使用してPhotoリソースを更新し、JSON 応答を返します。

PUT http://domain.com/api/v1/photos/1

質問: 1 つはPhotoControllersAPI の使用を処理するためのもので、もう 1 つは非 API のためのものです。

4

2 に答える 2

5

いいえ。同じコントローラーとアクションを指す 2 つの別々のルートを持つことができます。

Route::get('/photos/1', 'PhotoController@index');
Route::get('/api/v1/photos/1', 'PhotoController@index');

次に、コントローラー メソッドで、要求が Ajax からのものかどうかをテストできます。

if (Request::ajax()) {
    // Do some crazy Ajax thing
}
于 2013-07-27T16:00:00.707 に答える
2

API 呼び出しにプレフィックス付きのルート グループを使用します。

Route::resource('venue', 'VenueController');

Route::group(array('prefix' => 'api'), function(){
    Route::resource('venue', 'VenueController', array('only' => array('index', 'show')));
});

次に、コントローラーで次の条件を使用します。

if (Route::getCurrentRoute()->getPrefix() == 'api') {
    return Response::json($venues->toArray());
}
于 2014-03-13T01:31:41.797 に答える