Я вижу хороший размахивающий рукой вопрос о том, как обновлять только часть ресурса (например, индикатор состояния) с помощью REST.
Возможные варианты:
-
Пожаловаться на то, что у HTTP нет команды PATCH или MODIFY. Тем не менее, принятый ответ HTTP MODIFY verb для REST? показывает, почему эта идея не так хороша, как может показаться.
-
Используйте POST с параметрами и определите метод (например, параметр с именем "действие" ). Некоторые рекомендации заключаются в том, чтобы указать заголовок X-HTTP-Method-Override с самоопределяемым именем метода. Это, по-видимому, приводит к уродливости перехода в рамках реализации, основанной на том, что вы пытаетесь сделать, и быть открытым для критики того, что не являетесь особенно RESTful способом использования POST. Фактически, этот подход начинает ощущаться как интерфейс типа RPC.
-
Используйте PUT для перезаписи суб-ресурса ресурса, который представляет определенные атрибуты для обновления. Фактически, это эффективно переписывание подресурса, что похоже на дух PUT.
В этот момент я вижу # 3 как наиболее разумный вариант.
Является ли это лучшей практикой или анти-шаблоном? Существуют ли другие варианты?