В чем основное различие между PUT
и PATCH
запросы, и когда мы должны использовать одно вместо другого?
PUT и PATCH - это HTTP-глаголы, и оба они относятся к обновлению ресурса.
Основное различие между запросами PUT и PATCH заключается в том, как сервер обрабатывает вложенный объект, чтобы изменить ресурс, идентифицированный Request-URI.
В PUT
запроса, закрытый объект считается модифицированной версией ресурса, хранящегося на исходном сервере, и клиент запрашивает замену сохраненной версии.
Однако с PATCH
закрытый объект содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на исходном сервере, должен быть изменен для создания новой версии.
Кроме того, еще одно отличие состоит в том, что если вы хотите обновить ресурс с помощью PUT
request, вы должны отправить полную полезную нагрузку в качестве запроса, тогда как с PATCH
вы отправляете только те параметры, которые хотите обновить.
Связанный:
Предположим, у нас есть ресурс, содержащий имя и фамилию человека.
Если мы хотим изменить имя, мы отправляем PUT
запрос на обновление
{ 'first': 'Michael', 'last': 'Angelo' }
Здесь, хотя мы меняем только имя, на PUT
запрос мы должны отправить оба параметра первым и последним. Другими словами, необходимо снова отправить все значения, полную полезную нагрузку.
Когда мы отправляем PATCH
request, однако мы отправляем только те данные, которые хотим обновить. Другими словами, мы отправляем только имя для обновления, не нужно отправлять фамилию.
По этой причине PATCH
для запроса требуется меньшая пропускная способность.