Ash*_*ish 9 php design-patterns laravel laravel-5 laravel-5.1
我想为移动应用程序制作适用于Web和api的Laravel 5.1应用程序.我想为api请求返回json并查看Web浏览器.目前我设置了不同的路由和不同的控制器.在这种方法中,我正在重复代码.我不知道设计这种架构的最佳方法是什么.此外,我已经完成了几个类似的线程,建议将angular.js用于Web浏览器.
// web controller
Route::resource('product', 'ProductController');
// api controller
Route::group(['prefix' => 'api'], function() {
Route::resource('product', 'APIProductController');
});
Run Code Online (Sandbox Code Playgroud)
一种方法是使用内容协商方法。您将传递标头Accept: application/json
,然后您的应用程序将返回 json 格式的响应。然而,有些代理服务器不尊重内容协商,那么您的应用程序将会崩溃(您可以在此处阅读更多为什么 Drupal 放弃内容协商)。
另一种可能性是使用一些GET
变量来返回请求的格式,例如:/api/product?format=json
您也可以从调用中传递变量/api
:
Route::get('/api/product', ['as' => 'product', function(){
return App::make('ProductController')->index('json');
}]);
public function index($format) {
// Your controller code
if ($format == 'json') {
// return JSON
}
// return HTML
}
Run Code Online (Sandbox Code Playgroud)
或者你可以直接解析URI并查看它是否以以下开头/API
(不推荐)。我的选择是内容协商或/和format
GET 变量。
归档时间: |
|
查看次数: |
664 次 |
最近记录: |