Как насчет 424 Failed Dependency
?Спецификация описывает его как:
Метод не может быть выполнен на ресурсе, поскольку запрошенное действие зависело от другого действия, и это действие не удалось.
Но есть также это определение :
Код состояния 424 определен в стандарте WebDAV и предназначен для случая, когда клиент должен изменить то, что он делает, - сервер не испытывает никакихпроблема здесь.
Вы можете сказать клиенту (или притвориться), что у вас есть внутренние действия, которые должны создать заказ, и вычесть баланс, и что одно из этих действий не выполнено, хотя и идеальновеские причины, и именно поэтому запрос не прошел.
Насколько я понимаю, «действие» - это достаточно широкий термин, и его можно использовать в различных ситуациях, включая недостаточный запас, недостаточный кредит илиВечеринка на складе.
Другой вариант может быть 422 Unprocessable Entity
:
Сервер понимает тип содержимого tон запрашивает объект (следовательно, код состояния 415 Unsupported Media Type не подходит), и синтаксис объекта запроса является правильным (таким образом, код состояния 400 Bad Request является неподходящим), но не смог обработать содержащиеся в нем инструкции.
Например, это условие ошибки может возникать, если тело XML-запроса содержит правильно сформированные (т. Е. Синтаксически правильные), но семантически ошибочные XML-инструкции.
Попытка запросить элемент, который находится внеЗапас или если у вас недостаточно кредитов, может быть сочтено ошибкой на семантическом уровне.
Возможно, недостаточное количество акций или ночь на складе может считаться временным состоянием, поэтому запрос может быть повторен позже.Эта ситуация может быть обозначена как 503 Service Unavailable
В настоящее время сервер не может обработать запрос из-за временной перегрузки или планового обслуживания, которое, вероятно, будет устранено после некоторой задержки.
Сервер МОЖЕТ отправить поле заголовка Retry-After, чтобы предложить клиенту соответствующее время для ожидания перед повторной попыткой запроса.