Можем ли мы использовать http-код 422 (Unprocessable Entity) для операций Get? - PullRequest
1 голос
/ 09 июля 2019

Команда - Мы используем 422 HTTP Status Code for validations в нашем коде для HTTP GET операций.Но не уверен, сможем ли мы использовать операции get.Поскольку 422 unprocessable сущность звучит больше как подтверждение тела запроса - Пожалуйста, помогите

Спасибо

Ответы [ 4 ]

1 голос
/ 09 июля 2019

Обычно запрос GET не имеет полезной нагрузки. Мы используем GET для получения данных с сервера / базы данных, которые уже проверены на момент создания или вставки. Это означает, что нам не нужно проверять данные при получении.

Если у нас есть полезная нагрузка, мы должны использовать POST. Мы можем использовать 422 или 400 с POST согласно требованию.

GET

Метод GET означает получение любой информации (в форме объект) идентифицируется посредством Request-URI. Если Request-URI ссылается на процесс производства данных, это произведенные данные, которые должны быть возвращается как объект в ответе, а не как исходный текст процесс, если только этот текст не является результатом процесса.

POST

Метод POST используется для запроса, чтобы исходный сервер принял сущность, заключенная в запросе в качестве нового подчиненного ресурса идентифицируется Request-URI в строке запроса. POST предназначен для разрешить единый метод для покрытия следующих функций:

  - Annotation of existing resources;
  - Posting a message to a bulletin board, newsgroup, mailing list,
    or similar group of articles;
  - Providing a block of data, such as the result of submitting a
    form, to a data-handling process;
  - Extending a database through an append operation.

400

Код состояния 400 (неверный запрос) указывает, что сервер не может или не будет обрабатывать запрос из-за того, что воспринимается
быть ошибкой клиента (например, синтаксис некорректного запроса, неверный запрос
фрейм сообщения или обманчивая маршрутизация запроса).

422

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

Источник RFC 2616 Источник RFC 723x

0 голосов
/ 09 июля 2019

422 Непроцессируемый объект может использоваться для любого типа запросов.Это не характерно для GET, POST или DDELETE.Если вам нужно проверить какие-либо данные, которые могут быть приняты в качестве запроса, и должны быть проверены все предварительные условия, HTTP 422 может быть сгенерирован.

Например.В GET есть параметр пути, называющий что-то как возраст, который вы проходите, что синтаксически правильно, скажем, 16, но ваша бизнес-логика для возраста старше 18 лет. Следовательно, выбрасывать 400 здесь не правильно.

Ссылка: https://www.restapitutorial.com/httpstatuscodes.html

0 голосов
/ 09 июля 2019

В описании 422 говорится:

Код состояния 422 (Unprocessable Entity) означает, что сервер понимает тип содержимого объекта запроса (следовательно, код состояния 415 (Unsupported Media Type) неуместен), исинтаксис объекта запроса является правильным (таким образом, код состояния 400 (неверный запрос) неуместен), но не смог обработать содержащиеся в нем инструкции.

Вместо этого я думаю, что 400 код больше подходит здесь.

Таким образом, можно утверждать, что это неуместно для семантических ошибок.Но не больше;с июня 2014 года соответствующий стандарт RFC 7231, который заменяет предыдущий RFC2616, дает более широкое использование 400 (неверный запрос), поскольку сервер не может или не будет обрабатывать запрос из-за того, что воспринимается как ошибка клиента

0 голосов
/ 09 июля 2019

422 «Unprocessable Entity» больше о семантической ошибке, URI не является частью объекта запроса, поэтому 422. не применяется.

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