Какой статус HTTP возвращать при ошибке данных домена? - PullRequest
1 голос
/ 23 января 2012

Я разрабатываю приложение RESTful, которое интегрируется с другими веб-сервисами.

У меня вопрос: какой HTTP-статус я должен вернуть, если мой клиент публикует недопустимые данные для одного из этих веб-сервисов? Например, если он публикует недопустимое имя для веб-службы, которую использует мое приложение, какой из 4 ** кодов состояния я должен вернуть, учитывая, что это ошибка ввода пользователя?

Некоторые соображения, которые я высказал, и почему мне неудобно их использовать:

  • 400: данные недействительны, но не сам формат запроса
  • 403: сервер не отказывается отвечать, хотя данные недействительны
  • 406: ошибка в предоставленном параметре, а не в заголовке "accept"
  • 412: ошибка не имеет ничего общего с заголовком «If-Match»

Итак, что бы вы использовали в этом случае?

Ответы [ 2 ]

2 голосов
/ 23 января 2012

Придерживайтесь 400, или посмотрите на 422 (что может быть близко к тому, что вам нужно).

0 голосов
/ 23 января 2012

В реальной жизни коды состояния HTTP для REST и других веб-служб могут быть расплывчатыми, и их трудно четко указать. Также становится интересным, если ваш клиент на самом деле общается с прокси-сервером, и этот прокси возвращает свой собственный статус. Если в вашем веб-сервисе есть проблема (возможно, ниже вашего приложения), вы можете просто получить 500.

Раньше я выбирал возвращать 200 и использовать вашу собственную структуру JSON или что-то еще для возврата информации об ошибках для вашего клиента.

...