Что такое HTTP-метод PATCH?

«Что такое HTTP-метод PATCH?» — вопрос из категории HTTP и веб-протоколы, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

PATCH — это HTTP-метод, предназначенный для частичного обновления ресурса. В отличие от PUT, который предполагает замену ресурса целиком, PATCH применяет только те изменения, которые указаны в теле запроса.

С точки зрения тестирования API это важно, потому что:

  1. Тестирование граничных случаев: Нужно проверять, как API обрабатывает частичные обновления, особенно когда передаются не все поля.
  2. Валидация: Сервер должен корректно валидировать только изменяемые поля, а не весь ресурс.
  3. Идемпотентность: Метод PATCH не обязан быть идемпотентным (в отличие от PUT), что нужно учитывать при проектировании и тестировании.

Пример запроса и ответа:

PATCH /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "email": "new.email@example.com"
}
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "username": "old_username",
  "email": "new.email@example.com"
}

Что проверяет QA-инженер:

  • Корректность обновления указанных полей.
  • Невозможность изменить поля, не указанные в запросе (или их неизменность).
  • Обработку некорректных данных в частичном обновлении.
  • Коды ответов (200 OK при успехе, 400 при невалидных данных, 404 если ресурс не найден).
  • Совместимость с ETag и заголовками оптимистичной блокировки, если они используются.