Вопрос проверяет понимание метода HTTP PATCH и его отличий от PUT для частичного обновления ресурсов.
Метод PATCH используется в REST API для частичного обновления существующего ресурса. Он позволяет отправить только те поля, которые нужно изменить, вместо полной замены объекта. Это особенно полезно, когда ресурс содержит много полей или когда обновление требует минимальной передачи данных.
PUT заменяет ресурс целиком: если вы отправите PUT с неполным телом, отсутствующие поля могут быть удалены или сброшены. PATCH же применяет только переданные изменения, оставляя остальные поля нетронутыми. Например, для пользователя с полями name и email:
// PUT — заменит весь объект, email станет undefined
PUT /users/1
{ "name": "Alice" }
// PATCH — изменит только name, email останется
PATCH /users/1
{ "name": "Alice" }PATCH может использовать разные форматы, например JSON Patch (RFC 6902) или JSON Merge Patch (RFC 7396). JSON Merge Patch — простой: вы отправляете объект с изменяемыми полями. JSON Patch — более мощный, позволяет операции add, remove, replace и другие. Пример JSON Merge Patch:
PATCH /users/1
Content-Type: application/merge-patch+json
{ "email": "new@example.com" }PATCH широко используется в современных API, например, в социальных сетях для обновления профиля, в интернет-магазинах для изменения количества товара в корзине, в системах управления контентом для редактирования статей. Он уменьшает трафик и упрощает клиентскую логику, так как не нужно загружать весь объект для одного изменения.
Используйте PATCH, когда нужно обновить только часть ресурса, особенно если объект большой или изменения редки. Это делает API более гибким и эффективным, а также снижает риск случайной потери данных.