Недавно мне пришлось стандартизировать связь между клиентом и сервером в многофункциональном веб-приложении, состоящем в основном из виджетов. Ответы клиенту в формате json. Когда пришло время принять решение об обработке сообщений об ошибках, возникли две идеи.
Отправить часть сообщения об ошибке
ответ, такой как
{ "успех": "ложная", "ошибка": [ "field1": "message1", "field2": "message2"]}
Отправьте ошибки в виде заголовка и просто верните false клиенту
response.addHeader ( 'X-приложения-ошибки', '[ "поле1": "message1", "поле2": "message2"]')
Второй вариант выглядит аккуратным; пользователь проверяет наличие ошибок в заголовках только тогда, когда он этого хочет, и таким образом ошибки кажутся частью протокола, а не частью ответа.
Это хорошая практика? Один способ лучше другого.