Это теоретический вопрос. Я считаю, что знаю ответ, но я получил противоречивые ответы, поэтому решил спросить здесь.
На сайте W3C написано:
Ошибка клиента 4xx Класс кода состояния 4xx предназначен для случаев, когда клиент допустил ошибку.
Это также говорит
Ошибка сервера 5xx Коды состояния ответа, начинающиеся с цифры "5", указывают на случаи, когда сервер знает, что он допустил ошибку или не может выполнить запрос.
Я понимаю, что если запрос синтаксически правильный, но логически неправильный, например, попытка создать объект с недопустимым значением для определенного свойства, тогда мой API должен выдать ошибку 5xx, потому что сервер ДЕЙСТВИТЕЛЬНО понял запрос , но обнаружил, что он недействителен. С другой стороны, мне сказали, что это должна быть ошибка 4xx (в частности, 400 Bad Request), потому что логическая ошибка была на стороне клиента, поскольку он в первую очередь отправил недопустимое значение.
Итак, какой код ошибки я ДОЛЖЕН сообщать?
http-status-code-500
гласит: НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ТЕГ. Это не имеет смысла для классификации вашего вопроса. Пожалуйста, прочитайте описания тегов, прежде чем использовать их для своих вопросов. - person Ken White   schedule 12.06.2014