当前位置: 首页 > 知识库问答 >
问题:

Symfony2 FOSRest包-常规路线

高森
2023-03-14

我正在使用Symfony2和fos restbundle开发一个应用程序。我想创建一些API路由和一些常规路由(AngularJS前端正好有一个)。这是我的fos_rest配置(以及sensio的一些配置行):

sensio_framework_extra:view:{annotations:false}路由器:{annotations:true}请求:{converters:true}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'format:json:true xml:true format_listener:rules:-{路径:'^/api',优先级:['json',xml'],fallback_format:json,首选_extension:true}访问被拒绝\u侦听器:json:true

如你所见,我view_response_listener启用和查看注释禁用。我找不到方法来定义常规(不是REST)路由(和视图)的索引操作(AngularJS的必要条件)。不断得到一个错误:

ERROR - Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException: "No matching accepted Response format could be determined" at C:\wamp\www\CRMProject\vendor\friendsofsymfony\rest-bundle\EventListener\FormatListener.php line 69 

我将感谢任何帮助。

共有2个答案

鲜于宜修
2023-03-14

正如官方文档中所建议的,您还可以为站点的“正常”部分(而不是API)禁用格式侦听器:

通常,在将此捆绑包与现有应用程序集成时,禁用某些路由的格式侦听器可能会很有用。在这种情况下,可以定义一个规则,通过将stop设置为true作为规则选项来阻止格式侦听器确定格式。包含此设置的任何规则和以下任何规则都将不被考虑,请求格式将保持不变。

# app/config/config.yml
fos_rest:
    format_listener:
        enabled: true
        rules:
            - { path: '^/api', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
            - { path: '^/', stop: true } # Available for version >= 1.5
洪英豪
2023-03-14

您可以为索引页添加其他规则(例如):

format_listener:
    rules:
        - { path: '^/api', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true }
        - { path: '^/', priorities: [ 'text/html', '*/*'], fallback_format: html, prefer_extension: true }

阅读有关格式侦听器的文档:http://symfony.com/doc/current/bundles/FOSRestBundle/format_listener.html

 类似资料:
  • 问题内容: 命名空间Python程序包(no )和常规Python程序包(具有)之间有什么区别,尤其是对于常规程序包为空时? 我很好奇,因为最近我一直忘了自己制作的包装,而且我从没发现任何问题。实际上,它们的行为似乎与常规软件包相同。 编辑:命名空间包仅受Python 3.3支持(请参阅PEP 420 ),因此自然地,此问题仅适用于Python 3。 问题答案: 阅读Aaron和PEP420的链接

  • 使用情况数据 共享使用情况数据 如果你想让设备发送有关你如何使用 Navicat Data Modeler 的信息来帮助我们进行改进,可勾选这个选项。你可以点击“使用情况数据”按钮来查看正在共享的信息。 更新 自动检查更新 勾选这个选项允许 Navicat Data Modeler 在已选择的时间自动检查新的版本。 包括匿名的系统配置文件 如果你想在 Navicat Data Modeler 检查

  • 常规 布景主题 选择使用 Windows OS 的布景主题还是深色主题。 【提示】需要重新启动 Navicat Data Modeler 才生效。 语言 选择 Navicat Data Modeler 界面显示的语言。 【提示】需要重新启动 Navicat Data Modeler 才生效。 显示工具栏标题 在 Navicat Data Modeler 工具栏按钮显示文本。否则,只有按钮显示。 【

  • 常规 布景主题 选择使用 Windows OS 的布景主题还是深色主题。 【提示】需要重新启动 Navicat 才生效。 语言 选择 Navicat 界面显示的语言。 【提示】需要重新启动 Navicat 才生效。 允许重复运行 Navicat 如果你想打开多个 Navicat 实例,可勾选这个选项。取消勾选此项目意味著当双击 Navicat 快捷方式时,将会重新启动正在运行的 Navicat 实

  • 主窗口 在导航窗格中的模式下显示对象 在导航窗格使用树状结构显示数据库对象。若要展开節點,简单地双击它。 【提示】需要重新打开数据库或模式才生效。 字体 定义对象列表使用的字体和字体大小。 使用默认字体 若要使用默认的字体设置,可勾选这个选项。 数据库项目 如果表没有主键,则发出警告 当打开没有设置主键的表时,如果你需要通知,可勾选这个选项。 显示函数向导 当你创建新的函数或过程时,显示函数向导(

  • 常规 语言 选择 Navicat 界面显示的语言。 【提示】需要重新启动 Navicat 才生效。 允许重复打开相同的对象 如果你想允许一个对象可打开多个实例,可勾选这个选项。 在导航窗格中的模式下显示对象 在导航窗格使用树状结构显示数据库对象。若要展开节点,简单地双击它。 【提示】需要重新打开数据库或模式才生效。 显示函数向导 当你创建新的函数或过程时,显示函数向导(MySQL、Oracle、P