В статье
Введение в службы RESTful говорится, что:
Идемпотент Две других основных команды HTTP, обычно используемые в виде части единого интерфейса, это PUT и DELETE. Команда PUT чаще всего используется, когда агенту пользователя требуется изменить ресурс, а команда DELETE описывает себя сама. Важным моментом (и именно это описывает термин «идемпотент») является то, что на конкретном ресурсе эти две команды можно использовать несколько раз, и результат будет таким же, как при их первом использовании — по крайней мере, не будет никаких дополнительных воздействий. Это является обнадеживающим обстоятельством при создании надежных распределенных систем, в которых ошибки, сбои в сети или задержка могут привести к многократному выполнению кода.
Правильно ли я понимаю, что при реализации на стороне сервера метода
DELETE
, нужно всегда отвечать положительным ответом.
Приведу пример.
Клиент выполняет запрос
DELETE /user?id=42
дважды.
Первый раз ему приходит ответ
200 status: true
.
Что должно приходить при повторном запросе?
200 status: true
4xx status: false, error: user_not_found