Ответ
PATCH — это HTTP-метод, предназначенный для частичного обновления ресурса. В отличие от PUT, который предполагает замену ресурса целиком, PATCH применяет только те изменения, которые указаны в теле запроса.
С точки зрения тестирования API это важно, потому что:
- Тестирование граничных случаев: Нужно проверять, как API обрабатывает частичные обновления, особенно когда передаются не все поля.
- Валидация: Сервер должен корректно валидировать только изменяемые поля, а не весь ресурс.
- Идемпотентность: Метод
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и заголовками оптимистичной блокировки, если они используются.