symfony Вывод сообщений сообщений исключений (ошибок) в формате JSON. Разные форматы для разных контроллеров
Primary tabs
Symfony 5
Если используете аннотации, то в файле:
config/routes/annotations.yaml
можно написать так:
controllers:
resource: ../../src/Controller/
type: annotation
api-controllers:
resource: ../../src/Controller/Api
type: annotation
defaults:
_format: json
В данном случае контроллеры из директории
../../src/Controller/Api
в случае возникновения в них исключительной ситуации будут выводить сообщения именно в формате json.
Symfony 6
Сначала установим пакет:
composer require symfony/serializer-pack
Затем используем тот же подход, что и для 5-ой версии, но можно без упоминания аннотаций, напр. в файл:
controllers:
resource: ../src/Controller/
type: attributeДобавим:
controllers:
resource: ../src/Controller/
type: attribute
defaults:
_format: json-- этого хватит для измения формата отображения (на json) неперехваченных исключений - "нефатальных" ошибок, но напр. для ошибки синтаксиса будет показана опять HTML-страница.
Если нужно конвертировать в xml, то по аналогии указываем:
controllers:
resource: ../src/Controller/
type: attribute
defaults:
_format: xmlДокументация:
- How to Customize Error Pages: https://symfony.com/doc/current/controller/error_pages.html
- How to format all HttpExceptions as json in symfony5 https://stackoverflow.com/questions/61126321/how-to-format-all-httpexceptions-as-json-in-symfony5
- Log in to post comments
- 2355 reads