如何在Laravel中制作REST API的第一个Web应用程序
我想在Laravel中制作一个API第一个应用程序。我不知道最好的方法是什么,我会解释我想要做什么,但请随时给出如何以不同的方式做到这一点的答案。
我不希望我所有的前端都是用javascript编写的,并用angular.js或类似的东西来解析API的JSON输出。我希望我的Laravel应用程序生成HTML视图。我正在尝试让两个控制器,一个用于API,一个用于Web。对于显示“用户操作我的路由.php如下所示:
# the web controller
Route::controller('user', 'WebUserController');
# the api controller
Route::group(array('prefix' => 'api'), function() {
Route::resource('user', 'UserController');
});
所以会带我去,并会带我去.现在我想把我所有的逻辑放在API中,并从中调用它的操作。以下是它们两者的代码:/user
WebUserController
/api/user
UserController
UserController
WebUserController
class UserController extends BaseController
{
public function show($id)
{
$user = User::find($id);
return Response::json(array('success'=>true,'user'=>$user->toArray()));
}
}
class WebUserController extends UserController
{
public function getView($id)
{
# call the show method of the API's User Controller
$response = $this->show($id);
return View::make('user.view')->with('data', $response->getData());
}
}
在 中,我能够获取响应的 json 内容,但我无法获取标头和状态代码(它们是 的受保护属性)。WebUserController
getData()
Illuminate\Http\JsonResponse
我认为我的方法可能不是最好的,所以我对如何制作这个应用程序的建议持开放态度。
编辑:如何获取响应的标题和状态的问题已经由Drew Lewis回答,但我仍然认为可能有更好的方法来设计这个