Какой http-статус я должен отправить для неверно сформированного ответа json?

#node.js #http #jsonschema #http-status

#node.js #http #jsonschema #http-status

Вопрос:

Я создаю простой http-сервер в nodejs, который проверяет исходящий json. Если проверка завершится неудачей, каким будет правильный код состояния / сообщение об ошибке для отправки клиенту?

Комментарии:

1. @CertainPerformance нет, если json выводится сервером. В случае клиента json будет 400/422, верно?

2. 500 — Внутренняя ошибка сервера. Если сервер сгенерировал неверный ответ на действительный запрос, это явно внутренняя ошибка, не так ли?

3. @tkausl Спасибо, это то, что у меня есть прямо сейчас, хотя я не был уверен.

Ответ №1:

Поскольку ошибка возникает на сервере, ошибка должна составлять 500 секунд.

Похоже, что нет никакого сообщения об ошибке, соответствующего, в частности, этой проблеме, поэтому вы можете использовать общее сообщение, указывающее, что на сервере возникла какая-то проблема: ошибка 500 Внутренняя ошибка сервера. Логика, выполняемая на сервере, не оправдала ожиданий.

Ответ №2:

Общие коды состояния:

4xx означает ошибки клиента

  1. 400 неверный запрос
  2. 401 несанкционированный
  3. 403 Запрещено
  4. 404 Не найдено
  5. Метод 405 не разрешен

2xx означает статус HTTP-кода

  1. 200 ок, это для успешного обновления или получения ресурса
  2. 201, означает, что был создан любой источник
  3. 204, означает, что запрос не имеет полезной нагрузки, но мы использовали его при обновлении

5xx означает ошибки сервера

  1. 500 Внутренняя ошибка сервера
  2. 501 Не реализовано
  3. 502 плохой шлюз
  4. 503 службы недоступны

Есть и другие. Но это, пожалуй, самые распространенные