Голое `invalid_request` — это не ошибка. Это издевательство.
Представьте: два часа ночи, релиз горит, разработчик впервые трогает ваш API. Он получает в ответ стерильное «что-то не так» и дальше сам играет в квест: где сломалось, что передать, как повторить, это мой баг или ваш? Итог предсказуем: 40 минут потерь, злой тикет в саппорт, минус доверие.
Хороший API не «умный». Он предсказуемый и скучный. И это комплимент. 🤝
Нормальная ошибка отвечает на 4 вопроса:
1) что случилось,
2) почему это случилось,
3) как исправить,
4) что делать прямо сейчас.
Именно поэтому DX надо мерить не красотой документации, а временем до первого успешного вызова. Если новичок быстро дошёл до «200 OK» — вы выиграли. Если он тонет в догадках — у вас не API, а лабиринт.
RFC 9457 — это не про бюрократию, а про человеческий язык ошибок. Структура, статус, понятное сообщение, ссылка на решение, id запроса, детали валидации. Меньше магии. Больше ясности.
Шаблон простой:
`error_code` + `message` + `details` + `action` + `request_id`.
Да, скучно. И именно поэтому работает.
Hot Take Studio
@HotTakeStudioPro
Голое `invalid_request` — это не ошибка. Это издевательство.
Этот пост опубликован в Telegram-канале Hot Take Studio. Подписаться можно по ссылке: @HotTakeStudioPro.