CakePHP 3.x REST API - Пользовательские сообщения об ошибках, когда отладка отключена - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть одностраничное приложение на основе AngularJS, подключенное к бэкэнду CakePHP 3.x. CakePHP просто действует здесь как REST API.

Когда в app.php включена отладка, сообщения об ошибках, генерируемые через исключения, возвращаются правильно и могут отображаться как значимые сообщения во внешнем интерфейсе.
Пример:"Пароль не совпадает."

Однако при отключенной отладке возвращается только сообщение об ошибке по умолчанию, связанное с кодом состояния HTTP.
Пример: «Внутренняя ошибка сервера»

Как я могу убедиться, что полные и полные сообщения об ошибках отправляются на веб-интерфейс?

Спасибо.

1 Ответ

0 голосов
/ 05 ноября 2018

При необходимости используйте HttpException

По умолчанию средство визуализации исключений в CakePHP будет использовать сообщение об исключении, только когда включен режим отладки или когда исключение имеет тип \Cake\Http\Exception\HttpException - используйте его (соответственно, один из его подклассов, предоставляемых ядром), когда это уместно!

Для вашего конкретного примера сбоя аутентификации, например, вы должны использовать \Cake\Http\Exception\ForbiddenException, который сопоставляется с ошибкой HTTP 403. Это правильно с точки зрения HTTP, и это также решит вашу проблему с проглатыванием пользовательских сообщений.

См. Также API> \ Cake \ Http \ Exception \ HttpException

Использовать средство визуализации пользовательских исключений

Также нередко создаются настраиваемые / расширенные средства визуализации исключений для визуализации пользовательских форматов ответов API. Примером может быть, если вы хотите отправить ошибки проверки, которые часто бывают групповыми и даже вложенными.

См., Например, CakePHP 3: обработка / сериализация исключений в RESTful API .

...