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
发送CURL请求以获取数据getDataAction()
$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转发是最好的方法。