Когда пользователь отправляет неверные данные в мой API (обычно через Javascript + JSON), мне интересно, какой код ответа HTTP я должен ответить.
Должен ли я вернуть ответ HTTP 200 с ошибками - или мой сервер ответит с ошибкой 400 или 500, так как запрос действительно не прошел мою проверку из-за некоторых плохих данных?
Кажется, что ошибка 400 - это путь, потому что "класс кода состояния 4xx предназначен для случаев, когда клиент, похоже, ошибся" - wikipedia
Однако следует иметь в виду, что большинство людей используют фреймворк вроде jQuery, который требует указать альтернативный обратный вызов, когда AJAX-запросы отвечают на любой код состояния, отличный от 200.