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

Как грамотно тестировать DELETE-запросы в API

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

Тестирование DELETE-запроса предполагает проверку успешного удаления ресурса, корректного HTTP-кода ответа (обычно 200 или 204), а также подтверждение отсутствия удалённого объекта при последующих запросах. Важно дополнительно проверить поведение при попытках удалить несуществующие или защищённые ресурсы.

Развёрнуто

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

Тестирование DELETE-запроса включает проверку, что ресурс был удалён, сервер вернул правильный HTTP-статус (200 OK или 204 No Content), и последующие GET-запросы к этому ресурсу возвращают ошибку или пустой результат. Также необходимо проверить обработку ошибок при удалении несуществующих объектов.


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

DELETE-запрос в REST API предназначен для удаления определённого ресурса. При успешном выполнении сервер обычно возвращает код 204 No Content (означающий успешное удаление без дополнительного тела ответа) или 200 OK с подтверждающей информацией.

Тестирование включает:

  • Проверку статуса ответа
  • Валидацию, что ресурс действительно удалён (например, последующий GET возвращает 404)
  • Обработку ошибок, когда ресурс отсутствует или доступ к удалению запрещён
Сценарий Ожидаемый HTTP-статус Описание
Успешное удаление 204 No Content / 200 OK Ресурс удалён, тело ответа пустое или с подтверждением
Попытка удалить отсутствующий ресурс 404 Not Found Ресурс не найден, ошибка удаления
Недостаточно прав 403 Forbidden Пользователь не имеет права удалить ресурс

Пример

DELETE /api/items/123 HTTP/1.1
Host: example.com
Authorization: Bearer token123

HTTP/1.1 204 No Content

В этом примере отправляется запрос на удаление ресурса с ID 123. Сервер отвечает статусом 204, что означает успешное удаление без тела ответа.

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

  • DELETE-запросы должны быть идемпотентными — повторный запрос к тому же ресурсу не должен приводить к ошибкам.
  • Правильная проверка статуса ответа: 200, 204 — успешное удаление; 404 — ресурс не найден; 403 — отказ в доступе.
  • Нужно проверять, что после удаления ресурс недоступен через GET.
  • Важно тестировать негативные сценарии: удаление несуществующих или защищённых ресурсов.
  • В ряде случаев сервер может возвращать тело ответа с подтверждением успешного удаления.

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