REST - изменить часть ресурса - PUT или POST

Я наблюдаю за тем, как вручную обновляют только часть ресурса (например, индикатор состояния), используя REST.

Варианты, кажется,:

Пожаловаться, что в HTTP нет команды PATCH или MODIFY. Тем не менее, принятый ответ наHTTP MODIFY глагол для REST? хорошо показывает, почему это не такая хорошая идея, как может показаться.

Используйте POST с параметрами и определите метод (например, параметр с именем «action»). Некоторые предложения должны указывать заголовок X-HTTP-Method-Override с самоопределенным именем метода. Похоже, это приводит к уродливости переключения внутри реализации, основанной на том, что вы пытаетесь сделать, и к критике за то, что вы не особо RESTful способ использования POST. Фактически, такой подход начинает ощущаться как интерфейс типа RPC.

Используйте PUT для перезаписи подресурса ресурса, который представляет определенный атрибут (ы) для обновления. Фактически, это фактически перезапись подресурса, что соответствует духу PUT.

На данный момент я вижу № 3 как наиболее разумный вариант.

Это лучшая практика или анти-паттерн? Есть ли другие варианты?

Ответы на вопрос(6)

Ваш ответ на вопрос