FOSRestBundle自定义视图处理程序未注册 [英] FOSRestBundle custom view handler not registering
问题描述
我正在尝试创建自定义处理程序,以将响应序列化为csv格式.
I'm trying to create custom handler for serializing response into csv format.
到目前为止,我一直在按照文档中的步骤进行操作( http://symfony.com/doc/master/bundles/FOSRestBundle/2-the-view-layer.html#custom-handler ),但是在调用扩展名为.csv的端点时我仍然收到错误:
So far I've been following the steps from documentation (http://symfony.com/doc/master/bundles/FOSRestBundle/2-the-view-layer.html#custom-handler), however when calling my endpoint with .csv extension I still get the error:
The format "csv" is not supported for serialization.
这是我的services.yml
配置位:
api.csv_handler:
class: ApiBundle\ViewHandlers\CsvViewHandler
api.view_handler:
parent: fos_rest.view_handler.default
calls:
- ["registerHandler", ["csv", ["@api.csv_handler", "createResponse"]]]
在fos_rest
下的config.yml
中,我有这个:
view:
mime_types: { 'csv': ['text/csv','text/plain'] }
view_response_listener: 'force'
formats:
json: true
xml: true
csv: true
templating_formats:
html: true
format_listener:
enabled: true
rules:
- { path: ^/, priorities: [ json, xml, csv ], fallback_format: json, prefer_extension: false }
- { path: ^/api/doc, priorities: [ html ], fallback_format: html, prefer_extension: false }
CsvViewHandler
类中的createResponse
方法当前仅包含一些调试代码以验证其是否正常工作.
The createResponse
method inside my CsvViewHandler
class currently only contains some debug code to verify if it's working, which it isn't.
那我在这里想念什么?
推荐答案
您必须在FOSRest捆绑包配置中注册视图处理程序:
You have to register your view handler in FOSRest bundle configuration:
fos_rest:
...
service:
view_handler: my_bundle.view_handler
...
services:
...
my_bundle.my_handler:
class: MyBundle\View\MyHandler
my_bundle.view_handler:
parent: fos_rest.view_handler.default
calls:
- ['registerHandler', [ 'my_format', ["@my_bundle.my_handler", 'createResponse'] ] ]
...
这篇关于FOSRestBundle自定义视图处理程序未注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!