Laravel resource controllers for both API and non-API use
laravel, laravel-4, php, restful-url
Solution
No. You can have two separate routes point to the same controller and action.
Route::get('/photos/1', 'PhotoController@index');
Route::get('/api/v1/photos/1', 'PhotoController@index');
Then, in your controller methods, you can test whether the request is from Ajax or not.
if (Request::ajax()) {
// Do some crazy Ajax thing
}
Problem
After creating a resource controller `PhotosController` for a website that also does AJAX calls to the API, it appears that the resource controller can be used on both the normal website and as the API. This displays a HTML page for `Photo` with id = 1 ``` http://domain.com/photos/1 ``` and Javascript uses the following which updates the `Photo` resource and returns a JSON response ``` PUT http://domain.com/api/v1/photos/1 ``` Question: Will we have 2 `PhotoControllers`, one to handle API usage and one for non-API?