【问题标题】:FOSRestBundle specify default format on custom route as JSONFOSRestBundle 将自定义路由上的默认格式指定为 JSON
【发布时间】:2014-09-09 16:52:06
【问题描述】:

在使用 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。任何帮助,将不胜感激。谢谢

【问题讨论】:

    标签: php json symfony fosrestbundle


    【解决方案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'
    

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

    【讨论】:

    • 我能够更改 format_listener: true 并解决了所有问题,但您的也是正确的,也只是向我显示了所有 NULL 值。那个 serializer_null 是什么?
    • 它认为这意味着即使它们为空,API 也会返回值,这是特定项目所必需的
    • ok 很有意义,这就是为什么我可以在我的 JSON 数组上看到所有 NULL 值。
    • 太棒了。祝你的项目好运
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2020-10-13
    • 2014-12-21
    • 1970-01-01
    • 2016-09-10
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多