Выбор правильного кода возврата HTTP для будущих ресурсов - PullRequest
2 голосов
/ 04 февраля 2010

Я не уверен, какой код HTTP является правильным выбором для отдельного сценария.

Клиенты могут загружать объекты с помощью PUT на предварительно известный URI. Затем объект обрабатывается на сервере, что может занять некоторое время (то есть транскодирование / обработка). Если это сделано, ресурс доступен под URI, на который он был загружен.

Теперь я не уверен, какой код ответа HTTP следует вернуть, если клиенты запрашивают ресурс перед обработкой. Я ищу что-то похожее на 410 Gone. Из-за архитектуры приложений различные клиенты будут знать URI до завершения обработки (по крайней мере, клиент, который сделал загрузку).

Кроме того, я не хочу использовать коды расширения WebDAV, хотя некоторые из них могут быть действительными.

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

  • 307 Temporary Redirect Перенаправление на ресурс-заполнитель.
  • 405 Method Not Allowed GET разрешен только позже => Клиенты не должны кэшировать этот ответ.
  • 503 Service Unavailable Подчеркивает ошибку на стороне сервера => Возможно, клиенту непонятно, что на самом деле не так.
  • Есть еще идеи?

Что мне выбрать?

Ответы [ 3 ]

3 голосов
/ 04 февраля 2010

Вы можете вернуть 202 Принято в ответ на начальное PUT, а затем 204 Нет содержимого на любые запросы GET, пока представление не станет доступным.

0 голосов
/ 05 февраля 2010

Возврат 202 и тело ответа, содержащее состояние и ссылку на ресурс, где можно отслеживать состояние.

Когда кто-то ПОЛУЧАЕТ еще не готовый ресурс, используйте 307 для темп. перенаправить на эту страницу мониторинга.

Для этого необходимо, чтобы клиент понимал тип мультимедиа объекта, который содержит ссылку на ресурс мониторинга, поэтому в системах «машина-машина» вам нужно будет чеканить тип мультимедиа для этого или хотя бы некоторого микро-формата, если вы используете HTML .

0 голосов
/ 04 февраля 2010

Нет конкретных кодов HTTP для вашего варианта использования. Может быть, вы хотите использовать расширение WebDAV 423 LOCKED :

Код состояния 423 (заблокирован) означает, что источник или целевой ресурс метода заблокирован.

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