我们正在构建一个Angular JS / Symfony2应用程序,并使用RESTful Web服务将数据提取到前端。
我们还创建了一个管理员(非Angular)来管理一些数据。我们认为重新使用REST api调用可能是最佳选择,而不是维护数据提取的第二组代码,因为它们与已知输入和预期输出具有契约性。
在我们的管理控制器中,是否有一种简单的方法可以在Symfony2中调用RESTful控制器并为输入提供不同的http请求类型(获取,发布,放置,删除等)并将响应拉回来?我们希望避免做一个卷曲请求。
在伪代码中:
$response = json_decode($request->call('/api/resource', 'post', array('id'=>5)));
// process $response
return $this->render('...view...', array(...));
提前致谢。
答案 0 :(得分:4)
您可以使用Guzzle之类的HTTP客户端向您自己的 API 发出调用。
但是,我建议您不在创建新的不必要请求时执行此操作。我建议您将所有业务逻辑从控制器移至单独的服务。使这些服务返回简单Objects
而不是JSON
,并使用Bundle中的控制器仅将转换这些Objects
转换为响应。这样您就可以重新使用 AdminBundle
中的服务。