Вопрос проверяет знание наиболее распространённых HTTP-методов и понимание разницы между полным и частичным обновлением ресурса.
В REST чаще всего используют методы GET, POST, PUT, PATCH, DELETE. GET служит для получения данных, POST — для создания, PUT — для полного обновления ресурса, а PATCH — для частичного. Разница между PUT и PATCH заключается в том, что PUT заменяет весь ресурс целиком, а PATCH — изменяет только указанные поля. PATCH подходит для частичных апдейтов, где важно избежать перезаписи всех данных.
REST API строится на семантике стандартных HTTP-методов.
GET
получение ресурса
не меняет состояние
безопасный и идемпотентный
POST
создание нового ресурса
действие не идемпотентно
сервер определяет итоговый результат (например, id)
PUT
полное обновление ресурса
идемпотентный
клиент отправляет полное состояние сущности
PATCH
частичное обновление
не обязательно идемпотентный
отправляется только набор изменений
DELETE
удаление ресурса
идемпотентный
Дополнительно могут использоваться: OPTIONS, HEAD, TRACE, CONNECT.
PUT — метод, который заменяет существующий ресурс его новой полной версией.
Пример:
php
PUT /users/10
{
"name": "John",
"email": "john@example.com",
"age": 30
}
Даже если возраст не изменился, клиент обязан передать всё.
Если поле отсутствует — сервер может считать, что его нужно удалить/сбросить.
PATCH — частичное обновление ресурса: клиент передаёт только изменённые поля.
Пример:
php
PATCH /users/10
{
"email": "new@example.com"
}
Другие поля остаются без изменений.
синхронизация полного состояния ресурса
заменяемые сущности (кэш, настройки)
при idempotent API, где повтор запроса должен давать одинаковый результат
обновление отдельных полей
оптимизация сетевого трафика
сложные или выборочные апдейты
PATCH лучше подходит в большинстве реальных API, где частичное обновление приходит чаще полного.
REST API опирается на семантику HTTP-методов. PUT — для полного замещения ресурса, PATCH — для частичного обновления. Разница важна при проектировании стабильных и предсказуемых API.