Выбор ответа Junior API-автотесты обновлено

401 или 403

Вопрос

Пользователь с валидным токеном запрашивает чужой заказ. Какой ответ ожидать в негативном тесте по типичной договорённости API?

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

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

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

Коротко

Правильный ответ: 403 Forbidden или 404, если API скрывает чужие ресурсы. 401 означает «не аутентифицирован» (нет или невалиден токен).

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

  1. 403 Forbidden или 404, если API скрывает чужие ресурсыправильный ответ
  2. 401 Unauthorized, потому что доступа к заказу у него нет
  3. 200 с пустым телом, чтобы не раскрывать данные заказа
  4. 400 Bad Request: в запросе указан чужой id заказа

Разбор

401 означает «не аутентифицирован» (нет или невалиден токен). Здесь пользователь известен, но прав нет: 403. Многие API отвечают 404, чтобы не раскрывать, что ресурс существует, это тоже нормально, если так в спецификации. Запрос корректен по форме, так что 400 не подходит, а 200 с пустым телом это баг.

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

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

Термины по теме