FosRestBundle混合树枝和json

时间:2016-08-02 22:24:11

标签: php twig symfony fosrestbundle

我有一个使用symfony的完整工作项目,我需要在其中添加一些rest api。

我正在使用FosRestBundle,并且已经使用以下配置在我的localhost中工作了:

# FOSRest Configuration
fos_rest:
    body_listener: true
    format_listener:
        rules:
            - { path: '^/', priorities: ['json'], fallback_format: json, prefer_extension: false }
    param_fetcher_listener: true
    view:
        view_response_listener: 'force'
        formats:
           json: true

当我把这个代码(在我的localhost中完全正常工作)放在prod环境中时,其余的api继续工作,但我所有的其他控制器只是给我一个"文本"而不是HTML。我在屏幕上看到了代码,而不是我的模板。

有谁知道造成这种行为的原因是什么?

class TestRestController extends FOSRestController
{
    /**
     * @Rest\Get("/test")
     * @QueryParam(name="id")
     * @QueryParam(name="name")
     */
    public function indexAction(\FOS\RestBundle\Request\ParamFetcher $paramFetcher){
         ....
    }

}

感谢。

1 个答案:

答案 0 :(得分:3)

例如,如果您的所有API实例都以/api/...开头,则可以使用此配置:

fos_rest:
    format_listener:
        rules:
          - { path: ^/api, priorities: [ json, xml ], fallback_format: json, prefer_extension: true }
          - { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: true }