Добавьте стабильный code, безопасное сообщение, ошибки по полям и request_id. HTTP-статус должен отражать класс проблемы, а технические подробности оставаться на сервере.
Как сделать ошибки API полезными для клиента
Добавьте стабильный code, безопасное сообщение, ошибки по полям и request_id. HTTP-статус должен отражать класс проблемы, а технические подробности оставаться на сервере.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
API возвращает только строку «Что-то пошло не так». Клиенту нужно показывать валидационные ошибки, отличать конфликт от сбоя сервера и давать поддержке номер обращения. Как расширить формат?
Ответ
Добавьте стабильный code, безопасное сообщение, ошибки по полям и request_id. HTTP-статус должен отражать класс проблемы, а технические подробности оставаться на сервере.
Например: {code:'validation_failed', message:'Проверьте поля', fields:{title:['Укажите название']}, request_id:'...'}. Не заставляйте клиента разбирать текст сообщения для бизнес-логики. Не включайте stack trace, токены или запросы БД в публичный ответ. Возможность повторить операцию и задержка повтора задаются отдельно.