Через PATCH можно реализовать мягкое удаление как изменение состояния ресурса, например archived=true. Это не физическое удаление записи, и такое поведение нужно явно описать в контракте.
Если бы удаление реализовывалось через PATCH, как бы это выглядело?
Через PATCH можно реализовать мягкое удаление как изменение состояния ресурса, например archived=true. Это не физическое удаление записи, и такое поведение нужно явно описать в контракте.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Через PATCH можно реализовать мягкое удаление как изменение состояния ресурса, например archived=true. Это не физическое удаление записи, и такое поведение нужно явно описать в контракте.
Пример тела частичного изменения: {"archived": true}. Сервер проверяет права, текущую версию и бизнес-ограничения, затем атомарно меняет статус. После этого определяют видимость в списках, возможность восстановления и доступ к связанным данным. Повторная установка того же состояния может быть идемпотентной, хотя PATCH в общем случае не обязан быть таким. Если требуется именно удаление ресурса, DELETE обычно яснее выражает намерение.