Ответ вслух Junior Коды ответа спрашивают часто обновлено

Какие коды ответа ты проверяешь

Вопрос

Какие коды ответа ты ожидаешь от CRUD-API и как проверяешь, что API их отдаёт правильно?

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

Для CRUD я жду: на чтение 200, на создание 201 с заголовком Location, на удаление 204 или 200, на обновление 200. Дальше негатив: битый JSON или неверный тип поля даёт 400, данные не по правилам бизнеса 400 или 422, как договорились в API.

Что должно прозвучать в ответе

  • Успех: 200 на чтение, 201 с Location на создание, 204 на удаление

  • Ошибки клиента: 400/422 на невалидные данные, 401 без токена, 403 без прав, 404 на несуществующий id, 409 на дубль

  • Ошибки сервера 5xx на мусорный ввод считаются багом

  • Код сверяю с документацией (OpenAPI) и единообразием по всему API

  • Проверяю не только код, но и тело ошибки и заголовки

Что могут спросить следом

  • Что вернуть на GET несуществующего id: 404 или 200 с пустым телом?
  • Почему 401 и 403 путают?
  • Когда допустимо отдать 404 вместо 403?

Разбор

Для CRUD я жду: на чтение 200, на создание 201 с заголовком Location, на удаление 204 или 200, на обновление 200. Дальше негатив: битый JSON или неверный тип поля даёт 400, данные не по правилам бизнеса 400 или 422, как договорились в API. Без токена 401, с токеном чужой роли 403, несуществующий id 404, дубль уникального поля 409, слишком часто 429. Любой 5xx на мой мусорный ввод сразу баг: сервер не обработал ошибку. Ожидания сверяю с OpenAPI, а если документации нет, с тем, как ведут себя соседние эндпоинты, потому что единообразие тоже требование. И кроме кода смотрю тело ошибки: есть ли понятное сообщение, нет ли стек-трейса и SQL в ответе.

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

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