Согласно RFC5789 (http://tools.ietf.org/html/rfc5789), это именно то, для чего предназначен PATCH:
Несколько приложений, расширяющих протокол передачи гипертекста (HTTP)
требуется функция для частичной модификации ресурса. Существующий
Метод HTTP PUT позволяет только полную замену документа.
Это предложение добавляет новый метод HTTP, PATCH, для изменения существующего
Ресурс HTTP.
Различие между PATCH и PUT описывается так:
Разница между запросами PUT и PATCH отражена в
способ, которым сервер обрабатывает вложенную сущность для изменения ресурса
идентифицируется запросом-URI. В запросе PUT вложенный объект
считается модифицированной версией ресурса, хранящегося на
исходный сервер, а клиент запрашивает сохраненную версию
быть замененным Однако с помощью PATCH вложенный объект содержит набор
инструкций, описывающих, как ресурс в настоящее время находится на
Исходный сервер должен быть изменен для создания новой версии.
Также описаны ограничения POST:
Метод PUT уже определен для перезаписи ресурса.
с полностью новым телом, и не может быть повторно использован для частичных изменений.
В противном случае прокси и кэши, и даже клиенты и серверы, могут получить
запутался относительно результата операции. POST уже используется, но
без широкой совместимости (например, не существует стандартного способа
обнаружение поддержки формата патча) [...]
Я бы посоветовал вам прочитать RFC и принять собственное решение, но мне это кажется довольно четким - запросы PATCH должны обрабатываться как частичные обновления. (NB они НЕ идемпотентны, в отличие от PUT.)
РЕДАКТИРОВАТЬ: как указал Евгений в комментариях, хотя запросы PATCH "neither safe nor idempotent as defined by [RFC2616]"
, они могут быть сделаны так:
Запрос PATCH может быть выдан таким образом, чтобы быть идемпотентным,
что также помогает предотвратить плохие результаты от столкновений между двумя
PATCH запрашивает один и тот же ресурс в течение аналогичного периода времени.
Столкновения из нескольких запросов PATCH могут быть более опасными, чем
PUT столкновения, потому что некоторые форматы патчей должны работать с
известная базовая точка, иначе они повредят ресурс. клиенты
При использовании такого типа патча СЛЕДУЕТ использовать условный запрос
такой, что запрос не будет выполнен, если ресурс был обновлен
поскольку клиент последний раз обращался к ресурсу. Например, клиент
может использовать сильный ETag [RFC2616] в заголовке If-Match в PATCH
запрос.