Symfony2 + GuzzleHTTP - 如何正确设置json响应

时间:2017-01-25 09:47:59

标签: json api symfony guzzle

我正在为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格式的响应。

我哪里错了?

0 个答案:

没有答案