Найти в Дзене

HTTP 200 ≠ корректный JSON


HTTP 200 говорит только об одном: сервер успешно обработал запрос. Но это не значит, что данные внутри ответа правильные.

Например, в документации поле называется drink, а в фактическом ответе — drnik. Значение напитка есть, но имя поля ошибочное. Следующий сервис ожидает drink и не найдёт его.

При проверке JSON разделяйте три вещи:
🔹 Наличие — поле существует?
🔹 Тип — значение нужного типа?
🔹 Значение — соответствует требованиям?

Даже правильная строка может находиться не в том поле или содержать неверное значение.
Для теста задайте небольшой контракт: обязательные поля, их типы и допустимые значения. Не копируйте ожидания из заведомо ошибочного ответа — иначе тест просто закрепит дефект.

⚠️ Дополнительные поля — отдельный вопрос. Если контракт разрешает расширение ответа, неизвестное поле само по себе не ошибка. Но в примере выше проблема ещё и в том, что обязательного drink нет.
В Checkcraft такие проверки можно сохранить и запускать повторно, а подробный отчёт показывает данные, на которых основан результат.

С какой ошибкой сталкиваетесь чаще: пропавшее поле, неверный тип или неверное значение?
Я разрабатываю Checkcraft Free (beta) для Windows и Linux: checkcraft.ru
Пример учебный; ошибки внесены специально.
HTTP 200 ≠ корректный JSON  HTTP 200 говорит только об одном: сервер успешно обработал запрос. Но это не значит, что данные внутри ответа правильные.
1 минута