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