API驱动的symfony2项目

API驱动的symfony2项目,api,symfony,fosrestbundle,Api,Symfony,Fosrestbundle,我正在尝试使用FOSRestBundle在symfony2中创建一个API驱动的项目 我有一个带有操作的APIController。 当我从某个外部应用程序发送请求时,这种方法非常有效。我得到了预期的JSON编码数据 但我也需要相同应用程序中的数据(即,相同应用程序中的其他一些控制器) 哪种方法适合这样做 正在创建APIController的对象,然后对其调用所需的操作。 或 或者从另一个控制器向APIController的getDataAction()发送CURL请求以获取数据 您可以使用从

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

我有一个带有操作的
APIController

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

但我也需要相同应用程序中的数据(即,相同应用程序中的其他一些控制器)

哪种方法适合这样做

  • 正在创建APIController的对象,然后对其调用所需的操作。 或
  • 或者从另一个控制器向
    APIController
    getDataAction()
    发送CURL请求以获取数据

您可以使用从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
将返回该操作的结果集。可能如下所示:

 $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

您可以使用从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
将返回该操作的结果集。可能如下所示:

 $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

我知道路由转发。但我想知道的是哪种方法是正确的。在内部使用curl请求是否是正确的方法如果您需要使用curl在应用程序中调用方法,这意味着您的代码中存在严重的体系结构问题。您应该将控制器中的任何业务逻辑外包给服务。控制器应该只处理http,而不是如何管理数据。我不需要求助于curl。我只是想知道这是正确的方法,从你的回答我认为不是!那么我应该选择路由转发吗?在symfony2透视图中,我认为url转发是最好的方法。我知道路由转发。但我想知道的是哪种方法是正确的。在内部使用curl请求是否是正确的方法如果您需要使用curl在应用程序中调用方法,这意味着您的代码中存在严重的体系结构问题。您应该将控制器中的任何业务逻辑外包给服务。控制器应该只处理http,而不是如何管理数据。我不需要求助于curl。我只是想知道这是正确的方法,从你的回答我认为不是!那么我应该选择路由转发吗?在symfony2透视图中,我认为url转发是最好的方法。