У меня есть куча операций PUT, которые выполняют действия над входным ресурсом. Давайте рассмотрим пример: у меня есть платежная операция в моем API, в которой указано, что с кредитной карты должна быть снята определенная сумма. В моем коде я сначала проверяю, достаточно ли средств на карте, а затем выполняю операцию. Если суммы недостаточно, я просто возвращаю 400, но я не уверен, что это правильно.
Какой правильный код состояния HTTP в подобных случаях?
Я могу, конечно, отправить ответ с HTTP 200
и прикрепить полезную нагрузку с дополнительными подробностями, объясняющими ошибку. Я также могу вернуть HTTP 400 Bad Request
или, что еще лучше, HTTP 412 Precondition Failed
.
Какой правильный код для отправки в ответ в подобном сценарии, когда проверка не удалась? Есть ли какой-либо ресурс, который я могу прочитать, чтобы понять обоснование кодов состояния HTTP и глаголов HTTP?