FOSRestBundle将自定义路由的默认格式指定为JSON

时间:2014-09-09 16:52:06

标签: php json symfony fosrestbundle

遇到FOSRestBundle自定义路由问题,我按照下面的链接但是没有解决我的问题。我的问题是,当我没有指定格式时,它默认为XML而不是JSON。

How to specify default format for FOS\RestBundle to json?

Config.yml

fos_rest:
routing_loader:
    default_format: json
    include_format: true
param_fetcher_listener: force
body_listener: true
allowed_methods_listener: true
view:
    view_response_listener: 'force'
    formats:
        json: true
        xml: true
format_listener:
    rules:
        - { path: '^/api', fallback_format: json, priorities: ['json', 'xml'], prefer_extension: true }

的routing.yml

get_forms:
pattern:  /api/v4/forms.{_format}
defaults: { _controller: NmpoloRestBundle:Form:cget, _format: ~ }

当我点击时,有谁知道为什么我的默认设置会转到XML: www.test.com/api/v4/forms

其XML格式不是JSON。任何帮助,将不胜感激。 THX

1 个答案:

答案 0 :(得分:1)

我通过将以下内容放在app/config/config.yml

中设法默认为json
fos_rest:
    //...
    routing_loader:
        default_format: json

我的完整配置是

fos_rest:
    serializer:
        serialize_null: true
    routing_loader:
        default_format: json
    format_listener: true
    view:
        view_response_listener: 'force'

无需在路由文件中进行额外配置