6

我正在尝试遵循Will Durand关于如何使用 Symfony2 设置良好的 REST API 的教程。但是,当我收到此错误时,我一开始就失败了:

The controller must return a response (Array(welcome => Welcome to my API) given).

我的基本配置肯定有一些基本问题。我尝试了不同的fos_rest配置设置,但配置参考并没有提供非常有用的帮助,因为我并不真正了解单个设置的作用。

我的设置:

//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 应该根据接受标头返回 XML 或 JSON。永远不会有 html 输出。

4

2 回答 2

28

我修好了它!配置需要如下所示:

sensio_framework_extra:
    view:
        annotations: false

fos_rest:
    view:
        view_response_listener: true
于 2013-04-17T07:19:41.057 回答
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
于 2015-01-10T18:53:24.210 回答