Мягкое удаление помечает запись — deleted_at, status: deleted — вместо удаления самой строки. Данные сохраняются для целей аудита, отмены и обеспечения ссылочной целостности, в то время как API рассматривает их как удаленные. Это позволяет API отвечать на ошибку 410 Gone для удаленного ресурса, что более информативно, чем 404 Not Found: это означает, что идентификатор был действителен, и объект намеренно больше недоступен.
При каждом чтении необходимо исключать помеченные строки, включая конечные точки списков, поиск и подсчеты. Запрос GET к идентификатору, удаленному по умолчанию, возвращает код 410, второй запрос DELETE возвращает код 410 или 404 вместо 204, а задача очистки в конечном итоге удаляет данные навсегда, часто после истечения срока хранения, который может быть установлен законодательством о защите персональных данных.
Эти данные, удаленные с помощью «мягкого удаления», исчезли. Они по-прежнему находятся в базе данных, в резервных копиях и часто в поисковых индексах; для персональных данных одного лишь «мягкого удаления» недостаточно для удовлетворения запроса на удаление. А конечная точка списка, которая игнорирует фильтр, восстанавливает удаленные записи для каждого клиента.
Удалите /protocol/v1/documents/{id} от имени администратора, затем получите тот же идентификатор: ответ будет 410, а не 404. Аналогично, просроченные купоны Shop API, а также отмененные билеты на Чемпионат мира и ФИБА отвечают кодом 410.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление