Поведение REST-запросы DELETE в идемпотентности?

В статье Введение в службы RESTful говорится, что:
Идемпотент Две других основных команды HTTP, обычно используемые в виде части единого интерфейса, это PUT и DELETE. Команда PUT чаще всего используется, когда агенту пользователя требуется изменить ресурс, а команда DELETE описывает себя сама. Важным моментом (и именно это описывает термин «идемпотент») является то, что на конкретном ресурсе эти две команды можно использовать несколько раз, и результат будет таким же, как при их первом использовании — по крайней мере, не будет никаких дополнительных воздействий. Это является обнадеживающим обстоятельством при создании надежных распределенных систем, в которых ошибки, сбои в сети или задержка могут привести к многократному выполнению кода.

Правильно ли я понимаю, что при реализации на стороне сервера метода DELETE, нужно всегда отвечать положительным ответом.
Приведу пример.
Клиент выполняет запрос DELETE /user?id=42 дважды.
Первый раз ему приходит ответ 200 status: true.
Что должно приходить при повторном запросе?
  1. 200 status: true
  2. 4xx status: false, error: user_not_found
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 1
angrySCV
@angrySCV
machine learning, programming, startuping
Сомнительное утверждение, возможно что-то напутали с разметкой текста в переводе.
Если запрос идемпотентный - то его можно кэшировать, ни пут ни делит кэшировать нельзя.
опять зашел на вики глянул, там указанно что например ПУТ возвращает разные статусы если есть изменяемый контент или его нет при отправке.
В целом ничего не мешает вам реализовать одинаковые ответы. Строгих стандартов нет, есть только общие рекомендации. Мне например нравиться вариант для ДЕЛЕТ с одинаковыми ответами.
Тогда отзывчивость сервера будет выше, раз тебе не нужно дожидаться окончания задачи, для отправки статуса (тоесть можно отправить задачу по удалению на сервер асинхронно и вернуть не дожидаясь результата статус 200).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы