Мой вопрос заключается в том, каким был бы RESTful способ предоставить функцию «продления»?
Как бы вы предоставили эту функцию на веб-сайте?
Вы, вероятно, начнете с просмотра веб-страницы записи с помощью запроса GET, которая загрузит текущее представление страницы в локальный кэш. Вы
Когда сервер определил, что запись имеет право наОбновление, веб-страница будет включать в себя своего рода гипермедиа, позволяющую клиенту запускать протокол обновления.В этом случае вы, вероятно, не хотите, чтобы у этого обеспечения была безопасная семантика, поэтому это будет форма, использующая метод POST.Когда пользователь отправляет форму, браузер создает HTTP-запрос с правильными метаданными и данные формы, скопированные в тело запроса, как описано в правилах обработки HTML;запрос будет отправлен на URL-адрес, указанный сервером в форме form.action.
Имеет ли значение написание URL-адреса для пользователя?Не совсем, пользователь просто отправляет форму, URL - это просто непрозрачные данные.Косвенно это имеет значение из-за способа определения семантики аннулирования кэша - если мы намереваемся, что обновление должно evict ранее кэшированных представлений веб-страницы, тогда запрос на публикацию должен иметь URL-адрес самой страницы.
Точно так же веб-форма не обязательно должна быть на странице - вы можете иметь ссылку на форму, управляемую в другом месте, используя другие правила кэширования.
Сделайте это в машиночитаемом видеКстати, и у вас есть REST API.
PUT
и PATCH
работают одинаково, за исключением , что тело запроса является описанием самой страницы.Загрузите HTML-код, внесите изменения, затем либо поместите PUT нового документа полностью, либо вычислите патч-документ и отправьте его вместо этого.
PUT и PATCH действительно хорошо работают для анемичных доменов - например, хранилищ документов;труднее работать с представлениями напрямую, когда вам необходимо провести обратный инжиниринг изменений, чтобы выработать намерение.