Выбор ответа Junior API-автотесты обновлено
401 или 403
Вопрос
Пользователь с валидным токеном запрашивает чужой заказ. Какой ответ ожидать в негативном тесте по типичной договорённости API?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 403 Forbidden или 404, если API скрывает чужие ресурсы. 401 означает «не аутентифицирован» (нет или невалиден токен).
Варианты ответа
- 403 Forbidden или 404, если API скрывает чужие ресурсыправильный ответ
- 401 Unauthorized, потому что доступа к заказу у него нет
- 200 с пустым телом, чтобы не раскрывать данные заказа
- 400 Bad Request: в запросе указан чужой id заказа
Разбор
401 означает «не аутентифицирован» (нет или невалиден токен). Здесь пользователь известен, но прав нет: 403. Многие API отвечают 404, чтобы не раскрывать, что ресурс существует, это тоже нормально, если так в спецификации. Запрос корректен по форме, так что 400 не подходит, а 200 с пустым телом это баг.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.