Подібне запитання розміщено тут: Який код стану HTTP підлягає поверненню службою REST API для помилки перевірки?
Відповідь у поточній версії стверджує, що "Наприклад, якщо URI повинен мати дату ISO-8601, і ви виявите, що він має неправильний формат або посилається на 31 лютого, тоді ви повернете HTTP 400. Так само, якщо ви очікуєте добре сформований XML в тілі сутності, і він не може проаналізувати ".
Однак що станеться, якщо користувач подасть правильно відформатовані дані? Під цим я маю на увазі, що користувач подав простий алфавітний рядок / текст для імені користувача та пароля (що цілком справедливо для моєї програми). Проблема лише в тому, що пароль не збігався з ім’ям користувача. У цьому випадку 400 буде неправильним, оскільки це цілком правильний синтаксис і добре сформований.
401 буде неправильним (як пропонується тут: Який код стану HTTP, щоб сказати, що ім’я користувача чи пароль були неправильними? ), Оскільки користувач не намагається отримати доступ до жодної сторінки, він просто намагається увійти в систему та вводить дані, які не збігаються.
Якщо озирнутися до першого допису, до якого я зв’язав, друга відповідь стверджує, що 422 - це правильна відповідь (і це мені здається правильним), однак, я використовую Django Rest Framework і 422 не є частиною кодів стану (a Список кодів статусу, які є частиною DRF, можна знайти тут: http://www.django-rest-framework.org/api-guide/status-codes/#client-error-4xx )
404 також не виглядає правильно, оскільки дані успішно приймаються та не відмовляються.
З огляду на це, яка справжня правильна відповідь, яку слід використовувати?