Eine ähnliche Frage wird hier gestellt: Was ist ein geeigneter HTTP-Statuscode, der von einem REST-API-Service für einen Validierungsfehler zurückgegeben werden kann?
Die Antwort im obigen Thread lautet: "Wenn der URI beispielsweise ein ISO-8601-Datum haben soll und Sie feststellen, dass er im falschen Format vorliegt oder sich auf den 31. Februar bezieht, würden Sie einen HTTP 400 zurückgeben. Das Gleiche gilt, wenn Sie dies erwarten." wohlgeformtes XML in einem Entitätskörper und es kann nicht analysiert werden. "
Was passiert jedoch, wenn der Benutzer korrekt formatierte Daten übermittelt hat? Damit meine ich, dass der Benutzer eine einfache alphabetische Zeichenfolge / einen Text für den Benutzernamen und das Passwort eingereicht hat (was für meine Anwendung vollkommen gültig ist). Das einzige Problem ist, dass das Passwort nicht mit dem Benutzernamen übereinstimmt. In diesem Fall ist 400 falsch, da es sich um eine vollkommen gültige und wohlgeformte Syntax handelt.
Ein 401 wäre falsch (wie hier vorgeschlagen: Welcher HTTP-Statuscode für Benutzername oder Passwort war falsch? ), Da der Benutzer nicht versucht, auf eine Seite zuzugreifen, sondern lediglich versucht, sich anzumelden und Daten einzugeben, die nicht übereinstimmen.
Wenn Sie auf den ersten Beitrag zurückblicken, auf den ich verlinkt habe, heißt es in der zweiten Antwort, dass 422 die richtige Antwort ist (und für mich richtig aussieht). Ich verwende jedoch Django Rest Framework und 422 ist nicht Teil der Statuscodes (a Eine Liste der Statuscodes, die Teil von DRF sind, finden Sie hier: http://www.django-rest-framework.org/api-guide/status-codes/#client-error-4xx )
404 sieht auch nicht richtig aus, weil die Daten erfolgreich akzeptiert und nicht abgelehnt wurden.
Was ist die wirklich richtige Antwort, die verwendet werden sollte?