Intereting Posts
php часовой пояс «Etc / GMT + 5» эквивалентен UTC («Etc / UTC + 5»?) Понимание Blacklists и белых списков с PHP Фильтр обратного вызова Zend Framework 2 Codigniter связывает запросы. Как получить список категорий из Magento? Получение данных из базы данных MySQL в выпадающий список html PHP-скрипт для обработки дерева каталогов / файлов и дерева вывода в виде вложенных UL Перенаправление кого-то в браузерную поисковую систему Измените размер изображения без искажения, сохраняя пропорции, а затем избыток урожая с помощью WideImage Получить корневой узел XML-документа с помощью simplexml Как вызвать список продуктов в представлении produt Magento Что такое автозагрузка; Как вы используете spl_autoload, __autoload и spl_autoload_register? Как получить данные JSON в php? Мне нужно объяснение класса-оболочки с примером, что ребенок поймет Требуется очистить буфер в Node.js? Если да, то как? Если нет, то в чем проблема?

Как указать формат по умолчанию для FOS \ RestBundle для json?

Моя соответствующая конфигурация

fos_rest: view: view_response_listener: force sensio_framework_extra: view: annotations: false 

и это действительно раздражает, чтобы указать маршрут как

 @Route("/jobs", defaults={ "_format" = "json" }) 

каждый раз.

Так можно ли указать его где-то по умолчанию?

PS:

Если я удалю defaults={ "_format" = "json" } и вызовет конечную точку /jobs я получаю исключение

 Unable to find template "APIBundle:Jobs:post.html.twig". 

PPS:

 routing_loader: default_format: json 

не будет работать, потому что он используется только для создания автоматических маршрутов.

Окончательный ответ намного проще и не имеет отношения к FOS \ RestBundle:

 api: resource: "@APIBundle/Controller/" type: annotation defaults: {_format: json} # <<<<<<< prefix: /api/ 

Вы можете указать default_format который загрузчик маршрутизации будет использовать для параметра _format если ни один не указан.

 # app/config/config.yml fos_rest: routing_loader: default_format: json 

По умолчанию маршруты генерируются с помощью строки {_format}. Если вы хотите получить чистые URL-адреса ( /jobs вместо /jobs.{_format} ), то вам нужно добавить некоторую конфигурацию:

 # app/config/config.yml fos_rest: routing_loader: include_format: false 

Взгляните на документацию FOSRestBundle для получения дополнительной информации.

Я не смог проверить это решение самостоятельно, но, следуя документации, кажется, что вы можете использовать формат по умолчанию, задавая правила по пути

config.yml

 fos_rest: format_listener: rules: # setting fallback_format to json means that instead of considering # the next rule in case of a priority mismatch, json will be used - path: '^/' host: 'api.%domain%' priorities: ['json', 'xml'] fallback_format: json prefer_extension: false 

При этом запрос, сделанный с Accept-headers содержащими

 text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json 

В результате json формат запроса json