Какой статус ответа HTTP нужно вернуть - PullRequest
1 голос
/ 25 октября 2011

У меня есть операция REST.Пользователь хочет удалить объект.

  • Если возникает ошибка базы данных
  • При записи в ответ с помощью response.getWriter(), если возникает IOException.

Какой код состояния (500, 503 и т. Д.)) я должен вернуться на сторону клиента. (я имею в виду, какой из них удобнее?)

Ответы [ 4 ]

3 голосов
/ 25 октября 2011
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* * * * * *1004* * * * * * * * * * * * *1004* * * * * * * * * * * * * * * * * * * * * * * 100 * * * *1004* * *Я подозреваю, что вы все еще не можете эффективно повлиять на ответ, полученный клиентом ...

1 голос
/ 25 октября 2011

Не так уж много 500 кодов, и большинство из них имеют , означающее , кроме «Сбой базы данных» / «Произошло исключение ioexception». Обратите внимание, что вы, вероятно, должны различать, какой тип ошибки базы данных, например, удаление несуществующего объекта (не забудьте проверить «затронутые строки» вашего оператора DELETE) приведет к состоянию 404.

Для ваших двух примеров вы должны вернуть статус 500. Хотя, если в response.getWriter () возникает исключение ввода-вывода, вероятно, слишком поздно возвращать ошибку, или вы все равно не сможете связаться с клиентом.

И взгляните на коды ответов, используемые twitter api , а также этой страницы.

0 голосов
/ 25 октября 2011

Вы не предоставили нам достаточной информации, чтобы иметь возможность ответить на вопрос об ошибках базы данных.Если ошибка базы данных вызвана нарушением ограничения ссылочной целостности, вы должны вернуть ошибку 400, потому что это ошибка со стороны клиента.

Какие ошибки базы данных вас беспокоят?

0 голосов
/ 25 октября 2011

Если это временная ошибка, 503 подходит, так как обычно означает «повторить позже».Я не думаю, что большинство ошибок базы данных попадают в эту категорию, хотя.В большинстве случаев универсальный 500 является лучшим ответом.В списке 500 вариантов не так много:

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error

Если ошибка связана с тем, что удаление является недопустимой операцией или что-то в этом роде, то запретить 403 - это то, что я хотел быиспользовать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...