Symfony FOSRestBundle未设置_format参数
我有以下配置:Symfony FOSRestBundle未设置_format参数,symfony,fosrestbundle,symfony-2.8,Symfony,Fosrestbundle,Symfony 2.8,我有以下配置: fos_rest: view: view_response_listener: 'force' formats: json: true xml: true html: false body_listener: decoders: json: fos_rest.decoder.json xml: fos_rest
fos_rest:
view:
view_response_listener: 'force'
formats:
json: true
xml: true
html: false
body_listener:
decoders:
json: fos_rest.decoder.json
xml: fos_rest.decoder.xml
body_converter:
enabled: true
format_listener:
enabled: true
rules:
- { path: '^/api', priorities: ['xml', 'json'], fallback_format: xml, prefer_extension: false }
param_fetcher_listener: force
routing_loader:
# default_format: xml
include_format: false
serializer:
serialize_null: true
以及以下控制器:
/**
* @Rest\View(serializerGroups={"o-all-getCDashboard"})
*/
public function cgetAction($_format)
{
$handler = $this->getHandler();
die(dump($_format));
return $handler->getAll();
}
在扩展FOSRestController的类中,实现ClassResourceInterface
它总是转储
null
。如果我重新启用default\u格式:xml
我得到的总是xml
,尽管我发送了Accept
标题。怎么了?为什么格式\u侦听器不工作?您可以使用未更正的格式\u侦听器配置。
尝试像这样使用我的配置:
fos_rest:
body_listener: true
param_fetcher_listener: true
view:
view_response_listener: 'force'
formats:
jsonp: true
json: true
xml: false
rss: false
mime_types:
json: ['application/json', 'application/x-json']
jpg: ['image/jpeg']
png: ['image/png']
jsonp_handler: ~
routing_loader:
default_format: json
include_format: false
format_listener:
rules:
- { path: /api, priorities: [ json, jsonp ], fallback_format: json, prefer_extension: true }
exception:
enabled: true
添加仅为您自己设置节格式和回退格式。
在我的控制器中,我使用
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\RouteResource;
/**
* @RouteResource("someName")
*/
class myController extends FOSRestController implements ClassResourceInterface {
/**
* @param Request $request
* @Rest\Post("/someLink")
*/
public function insertLinkAction(Request $request) {}
}
我希望这对你有帮助