Я пишу приложение Backbone, которое должно взаимодействовать с REST API.
Моя проблема возникает, когда пользователь удаляет модель, которая уже была удалена кем-то другим.На мой взгляд, бэкэнд должен просто вернуть успех (200), так как модель все равно удаляется.Но люди, разрабатывающие серверную сторону, придерживаются иного мнения, поэтому я получаю 404. Для сравнения, когда запрос фактически не выполняется - следовательно, модель все еще жива - код ответа 400, или, возможно, 401 для проблем авторизации.
Поскольку я получаю ошибку, я фактически не удаляю модель.Я пытаюсь изменить это поведение: если я получаю ошибку 404 при удалении модели, это следует рассматривать как успех.Но я не совсем уверен, что является наиболее удобным способом справиться с этим.
В идеале я бы хотел избежать использования этой логики внутри model.destroy
.Это привело бы к повторению.Я мог бы поместить это в метод destroy
суперкласса, но модели все равно переопределяют этот метод, каждый со своей логикой, поэтому он становится беспорядочным.Я бы предпочел, чтобы в этот момент методы model.destroy
получили успех, не зная, что фактический ответ был 404.
С другой стороны, я не уверен, как поместить эту логику в Backbone.syncЕсли не считать переписывания всей функции.
Какой самый прозрачный способ преобразовать все 404 ответа на УДАЛИТЬ запросы в успех?