Я пурист, поэтому, когда мое приложение сталкивается с проблемой при сохранении данных, мне нравится возвращать правильные коды статуса http для моих пользователей (другие службы).Какова противоположность 202 принятых?
Это легко, если вы можете подтвердить запрос или знаете, что ваш сервер скончался. Но что происходит, когда это не так?
Когда все хорошо, и я могу сохранить данные, я возвращаю 202 Accepted. Что мне нужно вернуть, когда я не смог сохранить данные, но данные были действительно правильными, и мои серверы работают отлично, и это чужая ошибка?
В частности, сегодня я обнаружил проблему с сохранением при выполнении 2 связанных запросов в кластере db без липких сеансов.
Я не хочу врать моим пользователям. Я хочу сказать, что «Нет, я не мог сохранить данные», но я не хочу обвинять их в них (4xx), и это определенно не является внутренней ошибкой сервера.
Есть ли сообщение «Я не мог сделать ваш запрос» или ответ «Что-то пошло не так, попробуйте еще раз»?
Или я слишком серьезно отношусь к 500, и это должно быть то, что я использую?
Моя проблема заключается в том, что «сервер» (= сервис) не способен выполнить запрос он просто столкнулся с hickup, вам следует попытаться еще раз. Большинство клиентов, как правило, относятся к 500 годам как к смерти службы, что не так. – meza
503 говорит «временно» недоступно. – folkol
Но это даже не так. Он доступен, вы должны немедленно повторить попытку. Я склонен принять 500/503, но было бы неплохо найти что-то, что соответствует цели _exactly_. – meza