Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony FOSRestBundle:在浏览器上呈现XML_Symfony_Fosrestbundle - Fatal编程技术网

Symfony FOSRestBundle:在浏览器上呈现XML

Symfony FOSRestBundle:在浏览器上呈现XML,symfony,fosrestbundle,Symfony,Fosrestbundle,假设我有一个RESTAPI调用: /api/message/list 我希望根据HTTP Accept标头使用不同的响应格式 当我从curl命令请求JSON或XML时,它工作得非常好。但当我从浏览器加载它时,它会尝试渲染细枝模板,我不希望这样。我希望它返回XML内容而不是HTML。使用这种方法,我不需要为浏览器输出创建细枝文件 我之所以想这样做,是因为在浏览器上有API输出,而不需要为其创建细枝是很实际的 配置文件中是否缺少某些内容?或者,默认情况下,当前不支持此操作 我试过用这个,但没用 f

假设我有一个RESTAPI调用:

/api/message/list
我希望根据HTTP Accept标头使用不同的响应格式

当我从curl命令请求JSON或XML时,它工作得非常好。但当我从浏览器加载它时,它会尝试渲染细枝模板,我不希望这样。我希望它返回XML内容而不是HTML。使用这种方法,我不需要为浏览器输出创建细枝文件

我之所以想这样做,是因为在浏览器上有API输出,而不需要为其创建细枝是很实际的

配置文件中是否缺少某些内容?或者,默认情况下,当前不支持此操作

我试过用这个,但没用

fos_rest:
    body_listener:
        decoders:
            html: fos_rest.decoder.xml
            ...
我在config.yml上的完整FOSRest配置:

fos_rest:
    param_fetcher_listener: true
    body_listener:
      decoders:
        json: fos_rest.decoder.json
        xml: fos_rest.decoder.xml
        html: fos_rest.decoder.xml
    format_listener:
      default_priorities: [html, xml, json]
      fallback_format: xml
    view:
        view_response_listener: force
        formats:
            json: true
            xml: true
        force_redirects:
            html: true
        failed_validation: HTTP_BAD_REQUEST
        default_engine: php

sensio_framework_extra:
    view:    { annotations: false }
    router:  { annotations: true }
控制器上的“我的列表”操作仅返回消息数组:

<?php

use FOS\RestBundle\Controller\Annotations as Rest;

class MessageController extends Controller {

    /**
     * @Rest\View()
     */
    public function listAction() {
        $messages = //get the messages
        return $messages;
    }

    ...
}
?>


谢谢

很高兴看到您的路由文件。