Я бы пошел с ресурсным подходом «обновляет». Это имеет два основных преимущества
(a) Как и операции жизненного цикла (копирование, клонирование, перемещение), цель обновления ортогональна функции базового ресурса, поэтому должна быть полностью отделена
(b) Это дает вам некоторый способ проверки хода обновления - внешнее состояние ресурса обновления предоставит вам атрибут «status» или «progress».
Мы реализовали операции жизненного цикла таким образом, и разделение интересов является большим плюсом дизайна.
лучший подход
Другой способ справиться с этим - позволить серверу кэшировать свое представление ресурса в течение некоторого периода времени, фактически проверяя реальное состояние только после некоторого времени ожидания. В этой модели ваш сервер на самом деле является промежуточным ресурсом кэширования и должен следовать поведению HTTP-кэширования. Подробнее см. здесь . Ниже я приведу очень важный раздел, в котором говорится о клиенте, переопределяющем кэшированные значения.
13.1.6 Управляемое клиентом поведение
Хотя исходный сервер (и в меньшей степени промежуточные кэши по своему вкладу в возраст ответа) являются основным источником информации об истечении срока действия, в некоторых случаях клиенту может потребоваться контролировать решение кэша о том, возвращать ли кэшированный ответ без подтверждения. Клиенты делают это, используя несколько директив заголовка Cache-Control.
Запрос клиента МОЖЕТ указать максимальный возраст, на который он готов принять неподтвержденный ответ; указание значения ноль вынуждает кеш (ы) повторно проверять все ответы. Клиент МОЖЕТ также указать минимальное время, оставшееся до истечения срока ответа. Обе эти опции увеличивают ограничения на поведение кэшей и, следовательно, не могут еще больше ослабить кэш-аппроксимацию семантической прозрачности.
Клиент МОЖЕТ также указать, что он будет принимать устаревшие ответы, вплоть до некоторой максимальной степени устаревания. Это ослабляет ограничения на кеши и может нарушать указанные ограничения исходного сервера на семантическую прозрачность, но может быть необходимо для поддержки отключенной операции или высокой доступности в условиях плохой связности.
Chris