Код состояния HTTP для "Больше ввода пользователя, пожалуйста?" - PullRequest
3 голосов
/ 16 декабря 2011

Я проектирую RESTful API и использую обычные коды состояния HTTP, такие как 200, 404, 500 и т. Д.

Учитывая ситуацию, когда иногда API потребуются дополнительные данные. Когда это событие возникает, ему необходимо ответить соответствующим кодом состояния, чтобы клиентское приложение могло представить соответствующий пользовательский интерфейс.

Пример:

  1. Пользователь заполняет форму и нажимает кнопку отправки (используя AJAX)
  2. Сервер отправляет ответ с некоторым кодом состояния, чтобы указать, что требуется дополнительная информация, которая сопровождается дополнительным пользовательским интерфейсом.
  3. Отображается дополнительный интерфейс пользователя
  4. Пользователь повторно отправляет форму

У меня это работает с кодом состояния 200, но я бы предпочел использовать другой код состояния, чтобы мой обработчик AJAX мог автоматически обнаруживать и обрабатывать этот сценарий.

Существуют ли какие-либо соответствующие коды состояния или мне нужно использовать дополнительный код состояния, который возвращается как часть моего ответа JSON?

Ответы [ 3 ]

2 голосов
/ 16 декабря 2011

Я бы пошел с 400 Bad Request, поскольку требуется больше данных.

В качестве альтернативы, 100 Continue также может работать.

Любой из этих кодов указывает, что больше информациинеобходимо.

1 голос
/ 16 декабря 2011

Как насчет 202 Принято

"Запрос принят к обработке, но обработка не завершена"

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

0 голосов
/ 16 декабря 2011

Я бы предложил 412 Precondition Failed.

...