我正在为Symfony2中的应用程序构建API。我也用Guzzle进行测试。 我想以JSON格式作为响应返回用户列表。这就是我这样做的方式。 首先,我创建了该函数,我从db中检索所有用户。然后我使用JMSSerializerBundle来序列化JSON中的数据。
//APIController.php
/**
* @Route("/api/showUsers")
* @Method("GET")
*/
public function showUsersAction()
{
$repository = $this->getDoctrine()->getRepository('AppBundle:Users');
$users = $repository->findAll();
$serializer = $this->get('jms_serializer');
$response = $serializer->serialize($users,'json');
return new Response ($response, 200, array('Content-Type' => 'application/json'));
}
然后我的项目中有一个testing.php
文件,我用Guzzle测试结果。
//testing.php
require __DIR__.'/vendor/autoload.php';
$client = new \GuzzleHttp\Client([
'base_url' => 'http://localhost:83/',
'defaults' => [
'exceptions' => false
],
]);
$response = $client->get('api/showUsers');
echo $response;
现在,当我在终端中启动php testing.php
时,我会获得200状态代码,但text/html
为内容类型。所以我看到的响应是完整的HTML代码。
相反,当我从浏览器启动该功能时,我得到了JSON格式的响应。
我哪里错了?