我正在尝试关注如何使用Symfony2设置好的REST API Will Durand's tutorial。但是,当我收到此错误时,我在一开始就失败了:
The controller must return a response (Array(welcome => Welcome to my API) given).
我的基本配置基本必定是错误的。我为fos_rest
配置尝试了不同的设置,但是configuration reference并没有提供非常有用的功能,因为我不太了解单个设置的功能。
我的设置:
//config.yml
sensio_framework_extra:
view:
annotations: true
fos_rest: ~
//Controller
<?php
namespace Acme\Bundle\ApiBundle\Controller;
use FOS\RestBundle\Controller\Annotations as Rest;
class DefaultController
{
/**
* @Rest\View
*/
public function indexAction()
{
return array(
'welcome' => 'Welcome to my API'
);
}
}
我的API应该根据accept标头返回XML或者JSON。永远不会有html输出。
答案 0 :(得分:28)
我修好了! 配置需要如下所示:
sensio_framework_extra:
view:
annotations: false
fos_rest:
view:
view_response_listener: true
答案 1 :(得分:4)
我花了一天时间来搜索工作配置:
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json