Heim > Artikel > Backend-Entwicklung > Wie kann ich die 422-Fehlerantwort von FastAPI auf 401 für fehlende Header anpassen?
In FastAPI können Endpunkte einen bestimmten Header erfordern. Wenn dieser Header in einer Clientanforderung fehlt, gibt der Server den Fehlercode 422 Unprocessable Entity zurück. In einigen Szenarien kann es jedoch wünschenswert sein, diese Fehlerreaktion an 401 Unauthorized anzupassen.
Option 1: Optionaler Header mit benutzerdefinierter Fehlerbehandlung
Verwenden Sie Header(None), um anzugeben, dass der Header optional ist. Überprüfen Sie im Funktionskörper, ob „None“ vorhanden ist, und lösen Sie den Fehler „401 Unauthorized“ aus, wenn der Header nicht vorhanden ist.
Option 2: Ausnahmehandler überschreiben
Überschreiben Sie den Ausnahmehandler „RequestValidationError“. . Überprüfen Sie, ob sich der Fehler auf den benutzerdefinierten Header bezieht, und geben Sie entsprechend eine benutzerdefinierte Fehlerantwort (z. B. 401 Unauthorized) zurück.
Option 3: Unteranwendung mit benutzerdefinierter Ausnahmebehandlung
Erstellen Sie eine Unteranwendung und mounten Sie sie in der Hauptanwendung. Überschreiben Sie den Ausnahmehandler für RequestValidationError in der Unteranwendung, um Fehler nur für Routen in dieser Unteranwendung zu behandeln.
Option 4: APIRouter mit benutzerdefinierter APIRoute-Klasse
Verwenden eine benutzerdefinierte APIRoute-Klasse zur Behandlung der Ausnahmebehandlung. Definieren Sie innerhalb dieser Klasse einen benutzerdefinierten Routenhandler, der RequestValidationError abfängt und eine benutzerdefinierte Fehlerantwort zurückgibt.
Das obige ist der detaillierte Inhalt vonWie kann ich die 422-Fehlerantwort von FastAPI auf 401 für fehlende Header anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!