Столкнулся с проблемой отправки одинаковых по структуре json ответов в REST API. Проблема заключается в том, что часть ошибок возвращает сам фреймворк, часть обрабатываю я. И даже в рамках обработанных мною: я могу также вызывать эксепшены, а могу формировать свой json, опираясь на какие-то best practice. А кто-то использует сторонние пакеты. И получается, что фронтенд при обработке ответов должен предусматривать несколько конфигураций json-ответов, а это лишнее время, лишний код, больше ошибок. 1. Поделитесь инфой, как вы решаете проблему, чтобы все респонсы были одинаковые? Вы используете самописные какие-то классы для этого, или бросаете встроенные эксепшены, или сторонные пакеты? 2. И еще, разные ошибки могут отлавливаться на разных этапах. Например, одна при входе в констроллер, при валидации. Вторая в модели при попытке записать что-то в бд, третья где-то в сервисах. Как вы поступаете: как только есть ошибка в методе, вы сразу возвращаете респонс с текстом ошибки, или передаете эту ошибку например наверх в констроллер и уже оттуда респонс?
1. Переопределяю ErrorHandler фреймворка так, чтобы он возвращал все ошибки в нужном формате. 2. Если ошибка в модели, то кидаю исключение DomainException. И по этому типу уже вывожу в ErrorHandler или перехватываю в своём DomainExceptionMiddleware. При желании аналогично можно выбрасывать и ошибки валидации через ValidationException($errors) и ловить наверху.