Ответ
Content-Type: application/json — это заголовок, с которым я работаю постоянно при тестировании REST API. Он указывает, что тело запроса или ответа содержит данные в формате JSON.
Пример его использования в тестах:
// Тест на отправку POST-запроса с правильным Content-Type
@Test
void testCreateUser_WithValidJson() {
String userJson = "{"name": "John", "email": "john@test.com"}";
given()
.contentType("application/json") // Устанавливаем заголовок
.body(userJson)
.when()
.post("/api/users")
.then()
.statusCode(201)
.contentType("application/json"); // Проверяем заголовок в ответе
}
// Негативный тест: отправка данных без заголовка или с неверным типом
@Test
void testCreateUser_WithoutContentType_ShouldFail() {
String userJson = "{"name": "John"}";
given()
// Заголовок Content-Type НЕ установлен
.body(userJson)
.when()
.post("/api/users")
.then()
.statusCode(415); // Ожидаем Unsupported Media Type
}
Почему это важно для тестировщика:
- Валидация API: Сервер должен корректно обрабатывать или отвергать запросы в зависимости от этого заголовка.
- Поиск дефектов: Неправильная обработка
Content-Type— частый источник ошибок (например, падение сервера при полученииtext/plainвместоapplication/json). - Документация и контракты: Заголовок является частью контракта API, и тесты должны это проверять.