Выбор ответа Senior Коды ответа обновлено

Ошибка в теле при коде 200

Вопрос

API на любой запрос отвечает 200 OK, а ошибку пишет в теле: {"success": false, "error": "NOT_FOUND"}. Что главное стоит отметить как риск?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Мониторинг, кеши, ретраи и библиотеки сочтут ответ успешным. Инфраструктура опирается на коды: алерты по доле 5xx, ретраи на 503, кеширование 200, response.ok во фронтенде.

Варианты ответа

  1. Ничего: код ответа ни на что не влияет, клиент всё равно читает тело
  2. Такой API нарушает спецификацию JSON, где поле ошибки зарезервировано
  3. Браузер не покажет ответ с success: false, раз статус успешный
  4. Мониторинг, кеши, ретраи и библиотеки сочтут ответ успешнымправильный ответ

Разбор

Инфраструктура опирается на коды: алерты по доле 5xx, ретраи на 503, кеширование 200, response.ok во фронтенде. Если всё 200, ошибки проходят мимо метрик, а кеш может сохранить ответ-ошибку. Это не нарушение JSON и браузер всё отобразит. Исключение, которое стоит знать: в GraphQL ошибки в теле при 200 нормальная практика, там свои правила.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.