Задать вопрос

Поведение 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
  • Вопрос задан
  • 725 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Практика по REST и SOAP API на тренажере «Битва покемонов»
    4 недели
    Далее
  • Нетология
    Go-разработчик с нуля + нейросети
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
angrySCV
@angrySCV
machine learning, programming, startuping
Сомнительное утверждение, возможно что-то напутали с разметкой текста в переводе.
Если запрос идемпотентный - то его можно кэшировать, ни пут ни делит кэшировать нельзя.
опять зашел на вики глянул, там указанно что например ПУТ возвращает разные статусы если есть изменяемый контент или его нет при отправке.
В целом ничего не мешает вам реализовать одинаковые ответы. Строгих стандартов нет, есть только общие рекомендации. Мне например нравиться вариант для ДЕЛЕТ с одинаковыми ответами.
Тогда отзывчивость сервера будет выше, раз тебе не нужно дожидаться окончания задачи, для отправки статуса (тоесть можно отправить задачу по удалению на сервер асинхронно и вернуть не дожидаясь результата статус 200).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Казань
от 75 000 до 130 000 ₽
ITK academy Нижний Новгород
от 75 000 до 120 000 ₽
Data World Москва
от 180 000 до 210 000 ₽