Считается ли это хорошей практикой до повторного использования кодов состояния RFC HTTP , как это, или мы должны создавать новые, которые точно соответствуют нашему конкретные причины ошибки?
Мы разрабатываем API веб-служб на основе нескольких устаревших приложений.
В дополнение к структурам данных JSON / XML в теле ответа мы стремимся возвращать коды состояния HTTP, которые имеют смысл для веб-кэшей и разработчиков.
Но как вы относитесь к отображению различных классов ошибок в соответствующие коды статуса HTTP? Все в команде согласны со следующим:
GET / package / 1234 возвращает 404 Не найдено , если 1234 не существует
GET / package / 1234 / next_checkpoint возвращает 400 Плохой запрос , если «next_checkpoint» и 1234 действительны для запроса, но next_checkpont здесь не делает чувство ...
и так далее ... но, в некоторых случаях, вещи должны быть более конкретными, чем просто "400" - например:
POST / dispatch /? For_package = 1234 возвращает 412 Не выполнено предварительное условие , если / dispatch и пакет 1234 существуют, НО 1234 еще не готов к отправке.
( Редактировать: Коды состояния в HTTP / 1.1 и Коды состояния в WebDAV ext. )