Допустим, у меня одностраничное веб-приложение со списком элементов, в котором пользователь может щелкнуть элемент, чтобы просмотреть дополнительную информацию об этом. Информация о фактическом пункте загружается асинхронно, используя запрос AJAX GET на URL http://www.example.com/item/[id] и отображается при загрузке.RESTful ajax - какой код статуса HTTP для "item not found"?
Вопрос в том, что делать, если элемент с данным идентификатором не существует? Прямо сейчас запрос возвращает код состояния 200, но фактический контент указывает, что элемент не существует. Это похоже на плохую идею, поэтому я хотел, чтобы она возвращала код состояния, который указывал бы, что запрос не прошел в определенном смысле, поскольку элемент не существует (он также, например, позволит мне поймать его в ошибке обработчик в функции ajax jQuery).
Это хорошая практика (возврат кода состояния 200 только в том случае, если элемент действительно существует в базе данных), и если да, то какой код состояния лучше всего использовать в этой ситуации?
Спасибо, так что, если я правильно понял, если элемент не существует Я использую 404, так как элемент с этим идентификатором может появиться (добавить) в какой-то момент и 410, если он удаляется (с пункта с этим идентификатором берется удаленный элемент и, следовательно, никогда не будет существовать в будущем)? – fstanis
@fstanis Это похоже на суть, да. Хотя я видел, что услуги используют 404 для всех случаев (правильно или неправильно) – Shai