【发布时间】:2023-03-09 08:17:01
【问题描述】:
我有使用 FOSRestBundle 的 Symfony 应用程序,并且有一些 在 main config.yml 中配置的设置:
fos_rest:
service:
serializer: my.serializer
view_handler: my.viewHandler
view:
view_response_listener: false
failed_validation: 200
现在我正在构建新的公共 API 包,但我遇到了以下问题。 当我从浏览器测试我的 API 时,我得到了
Unable to find template "".
500 Internal Server Error - InvalidArgumentException
它的工作原理是 卷曲。我猜它失败了,因为浏览器要求提供 html 内容类型,并且 我不需要任何模板,我只想像这样返回 xml/json:
return $this->get('fos_rest.view_handler')->handle(View::create(array('x' => 'y')));
我用更新的配置来解决这个问题:
fos_rest:
service:
serializer: my.serializer
view_handler: my.viewHandler
view:
view_response_listener: false
failed_validation: 200
format_listener:
default_priorities: [xml, json]
fallback_format: xml
但后来我破坏了现有应用程序中的一些操作(其他捆绑 使用 FOSRestBundle)。 有没有办法调整 FOSRestBundle(或任何其他捆绑包)配置 仅适用于我的公共 API 捆绑包? 我试过扩展:
$loader = new YmlFileLoader($container, new FileLocator(__DIR__.'/../
Resources/config'));
$loader->load('services.yml');
services.yml 在哪里:
fos_rest:
service:
view_handler: my.public.api.view_handler
format_listener:
default_priorities: [xml, json]
fallback_format: xml
但我得到了:
InvalidArgumentException: There is no extension able to load the
configuration for "fos_rest".
【问题讨论】:
标签: rest symfony configuration bundle