К списку
HTTP, REST и APIMiddleТехническое

Особенности тестирования HTTP PUT-запросов для обновления ресурсов

Краткий ответ

Тестирование PUT-запроса направлено на проверку корректного обновления существующего ресурса, правильного статус-кода (обычно 200 или 204) и сохранения изменений. Важно также проверить валидацию входных данных и уровень доступа пользователя.

Развёрнуто

Краткий ответ

Тестирование PUT-запроса заключается в проверке успешного обновления ресурса на сервере, корректного возвращаемого статус-кода и сохранения изменений в базе данных. Необходимо убедиться, что сервер корректно обрабатывает как валидные, так и некорректные запросы с учетом авторизации.


Как это работает

HTTP-метод PUT используется для замены или обновления ресурса по указанному URI. При тестировании PUT важно:

  • Проверить, что отправляемые данные полностью заменяют текущий ресурс.
  • Убедиться, что сервер возвращает правильный статус-код: 200 OK при успешном обновлении с телом ответа или 204 No Content, если тело отсутствует.
  • Проверить сохранение изменений в базе данных или системе хранения.
  • Тестировать обработку ошибок: например, при отправке некорректных данных или отсутствии прав доступа.

Пример статусов:

Статус-код Значение
200 Ресурс успешно обновлён
204 Обновление прошло без тела
400 Некорректные данные
401/403 Ошибка авторизации

Пример

PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer token123

{
  "name": "Иван Иванов",
  "email": "ivan@example.com"
}

В ответ сервер должен вернуть:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Иван Иванов",
  "email": "ivan@example.com"
}

Это означает, что ресурс пользователя с ID 123 был успешно обновлён.

Что важно знать на собеседовании

  • PUT полностью заменяет ресурс, в отличие от PATCH, который обновляет частично.
  • Статус-коды 200 и 204 — наиболее частые успешные ответы для PUT.
  • Обязательна проверка обработки ошибок: валидация данных, права доступа.
  • Проверять сохранение данных на уровне базы или хранилища.
  • Тестировать idempotency — повторный PUT-запрос с одинаковыми данными не должен вызывать ошибок.

Тема: HTTP, REST и API | Уровень: middle