2016-01-21 2 views
-1

Для моего использования я должен использовать PATCH для частичного обновления. Но мне просто интересно, что SpringMVC отличается от RequestMEthod.PUT и RequestMethod.PATCH?Spring MVC PUT по сравнению с PATCH

Объект FYI @RequestBody заполняется одинаково с помощью PUT или PATCH.

+2

Spring MVC ничего не делает. «Все» - это получение запроса и позволяет обрабатывать его по методу контроллера. Вам решать, что вы хотите. –

+1

Добавление ссылки на хороший пост, в котором объясняется, как использовать патч, поскольку у меня есть ощущение, что в этом случае будет пропущено: http://williamdurand.fr/2014/02/14/please-do-not-patch -как-ан-идиот / – Augusto

ответ

0

PUT и PATCH - HTTP методы.

Весна RequestMethod только обертывает их. Поэтому возникает вопрос, когда следует использовать HTTP PUT и HTTP PATCH.

По this:

HTTP-RFC определяет, что PUT должна полностью новое представление ресурса как объект запроса.

В то время как

ЗАПЛАТА подобен PUT в том, что он обновляет ресурс, но в отличие от PUT, он применяет дельта вместо замены всего ресурса.

Для простых представлений ресурсов разница часто не важна.

Так, так как это только семантическое (вы можете делать все, что вы хотите в контроллере, как только вы получите запрос), и я полагаю, ваш отдых-апи не включает в себя сложные обновления, скажем, часть списка или конкретные поля в вложенных объектах - я считаю, что лучшим выбором будет PUT.