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/controll...
- How to format all HttpExceptions as json in symfony5 https://stackoverflow.com/questions/6112...
- Log in to post comments
- 1980 reads