API驱动的symfony2项目

时间:2013-05-03 06:44:46

标签: api symfony fosrestbundle

我尝试使用FOSRestBundle在symfony2中创建API驱动的项目。

我有APIController行动getDataAction().

当我从某个外部应用程序发送请求时,这非常有效。我按预期获得了JSON编码数据。

但我也需要在同一个应用程序中使用该数据(即同一应用程序中的其他控制器)。

这是一种合适的方法吗?

  • 创建APIController的对象,然后在其上调用所需的操作。 OR
  • 或从其他控制器向getDataAction()的{​​{1}}发送CURL请求以获取数据。

1 个答案:

答案 0 :(得分:1)

您可以使用 route forwarding 从APIController获取数据。通过使用此功能,您可以使用控制器中的任何操作。不需要 curl 或单独的控制器对象。这样的事情:

 $details = $this->forward('acmeRestBundle:API:getData',array('_format'=>'json'));

这将返回该动作的结果集。可能是这样的:

  content":protected]=>
  string(107181) "{}"
  ["version":protected]=>
  string(3) "1.0"
  ["statusCode":protected]=>
  int(200)
  ["statusText":protected]=>
  string(2) "OK"
  ["charset":protected]=>
  NULL