Ща буду пояснять за статус коды 🧐

Спасибо всем, кто накидал голоса 🙌 Честно - я там накосячил с формулировкой в опросе, заметил когда уже 20 голосов было. Редачить нельзя, удалять жалко. Кто не ошибается - тот не ведет телеграм каналы 😅 Погнали по ситуациям: Ситуация 1 GET /users/99999 Пользователя нет. Сервер возвращает 200 OK с пустым телом.

🚩 Это БАГ. Если ресурс не найден - честно отдавай 404. 200 с пустым телом - клиент никогда не поймёт: то ли пользователь есть, но пустой, то ли его нет. Привычка некоторых бэкендеров «чтоб не палить» - зло.

Ситуация 2 PATCH /users/1 с age: -5 Сервер возвращает 422 Unprocessable Entity + внятная ошибка.

✅ Это НОРМА. 422 - идеальный статус для валидационных ошибок: сервер понял запрос, но данные некорректны. Плюс человеческое описание в теле. Всё как надо.

Ситуация 3 POST /api/data с Content-Type: text/plain В теле JSON. Сервер принимает и парсит.

🚩 Это БАГ. Content-Type не соответствует содержимому. Даже если сервер умеет парсить - он должен требовать правильный заголовок. Иначе в один прекрасный день придёт другой клиент с реальным text/plain, и сервер упадёт с парсингом JSON.

—-

Итог: Бага нет только в ситуации 2.

Правильно ответили почти половина - красавчики 🔥 Вы реально шарите. Для тех, кто ошибся: • Ситуация 1 - самый частый новичковый баг на бэкенде (404 не кусаются, юзайте) • Ситуация 3 - Content-Type это контракт. Нарушать контракт = ждать проблем на проде

Полезное: Запомните простое правило - 200 OK это «я сделал и вот результат». Если результата нет (нет ресурса, пустой ответ) - это не 200. Используйте 404, 204, 422.

—-

В реалах, конечно, бывает по-другому 🤷‍♂️

Мы с вами знаем, что далеко не везде всё делают как в RFC и прочих стандартах. Это норм. Ну, не норма, а реалии жизни. Наша задача как тестировщиков: 1. Озвучить - завести баг, указать на несоответствие 2. Уточнить - обсудить с командой: это осознанное решение или костыль под дедлайн? 3. Принять - если решено оставить, принять решение команды

Приоритеты бывают выше идеального кода. Главное - ты своё дело сделал, докнул, аргументировал. Дальше - командная ответственность.

Успехов в тестировании 🧪🤘