Подтвердить что ты не робот

Какой код ответа HTTP для службы отдыха на методе put, когда правила домена недействительны

Каков наиболее подходящий ответный код для возврата при использовании метода PUT для обновления ресурса, а запрос содержит некоторые данные, которые лишали бы правдоподобных правил домена?

Например, ресурс клиента должен иметь указанное имя. Если агент пытается выдать PUT без предоставления имени, я не хочу обновлять ресурс, и я хочу сообщить вызывающему, что им нужно указать имя.

Какой код ответа HTTP?

4b9b3361

Ответ 1

В этом случае код ответа не связан с методом http. Вы должны вернуть тот же код статуса, как если бы это был запрос POST. Я бы сказал, что вы должны использовать 400 или 409 (Примечание: см. Дальнейшее обсуждение различий между ними в комментариях).

Ответ 2

Как насчет 422?

"Код статуса 422 (Unprocessable Entity) означает, что сервер понимает тип содержимого объекта запроса (следовательно, код статуса 415 (неподдерживаемый тип носителя) является неуместным), и синтаксис объекта запроса является правильным (таким образом, 400 (неверный запрос) является неприемлемым), но не смог обработать содержащиеся в нем инструкции. Например, это условие ошибки может возникнуть, если тело запроса XML содержит правильно сформированные (т.е. Синтаксически правильные), но семантически ошибочные инструкции XML."

RFC 4918, раздел 11.2

Ответ 3

Я бы вернул 400. Строго говоря, это для "неправильного синтаксиса" (недействительные данные), но на практике YouTube, Twitter и т.д. использовать его для более "плохих" запросов.