2014-09-13 3 views
0

Я пурист, поэтому, когда мое приложение сталкивается с проблемой при сохранении данных, мне нравится возвращать правильные коды статуса http для моих пользователей (другие службы).Какова противоположность 202 принятых?

Это легко, если вы можете подтвердить запрос или знаете, что ваш сервер скончался. Но что происходит, когда это не так?

Когда все хорошо, и я могу сохранить данные, я возвращаю 202 Accepted. Что мне нужно вернуть, когда я не смог сохранить данные, но данные были действительно правильными, и мои серверы работают отлично, и это чужая ошибка?

В частности, сегодня я обнаружил проблему с сохранением при выполнении 2 связанных запросов в кластере db без липких сеансов.

Я не хочу врать моим пользователям. Я хочу сказать, что «Нет, я не мог сохранить данные», но я не хочу обвинять их в них (4xx), и это определенно не является внутренней ошибкой сервера.

Есть ли сообщение «Я не мог сделать ваш запрос» или ответ «Что-то пошло не так, попробуйте еще раз»?

Или я слишком серьезно отношусь к 500, и это должно быть то, что я использую?

ответ

1

Это, безусловно, ошибка 500, имейте в виду, что каждая подсистема или служба, которые вы используете под капотом, является частью вашего сервера с точки зрения клиента.

Вы можете объяснить, что произошло более подробно в объекте ответа.

От rfc2616:

10.5 Server Error 5xx 

    Response status codes beginning with the digit "5" indicate cases in 
    which the server is aware that it has erred or is incapable of 
    performing the request. 
+0

Моя проблема заключается в том, что «сервер» (= сервис) не способен выполнить запрос он просто столкнулся с hickup, вам следует попытаться еще раз. Большинство клиентов, как правило, относятся к 500 годам как к смерти службы, что не так. – meza

+0

503 говорит «временно» недоступно. – folkol

+0

Но это даже не так. Он доступен, вы должны немедленно повторить попытку. Я склонен принять 500/503, но было бы неплохо найти что-то, что соответствует цели _exactly_. – meza

0

Это зависит от конкретной причины, но может быть уместно использовать 503 Service Unavailable, а резерв - общий 500. Википедия имеет a comprehensive list of status codes.

 Смежные вопросы

  • Нет связанных вопросов^_^