FastAPI: Verarbeiten von POST-Anfragen mit JSON-Daten
Bei der Arbeit mit FastAPI-APIs kann es besonders frustrierend sein, auf den Fehlercode 422 Unprocessable Entity zu stoßen beim Senden von JSON-Daten über POST-Anfragen. Dieser Fehler tritt auf, wenn der Anforderungstext nicht dem erwarteten Format entspricht oder erforderliche Felder fehlen.
Um dieses Problem zu beheben, ziehen Sie die folgenden Optionen in Betracht, um einen Endpunkt zu definieren, der JSON-Daten erwartet:
Option 1: Pydantic-Modelle
Verwenden Sie Pydantic-Modelle, um eine strukturierte Darstellung Ihres Anfragetextes zu erstellen. Dieser Ansatz ermöglicht eine einfache Validierung und Dokumentation der erwarteten Parameter.
Option 2: Body-Parameter
Verwenden Sie die Body-Parametereinbettung, um die erwartete JSON-Nutzlast direkt in der Funktion zu deklarieren Unterschrift. Diese Methode vereinfacht die Parameterbehandlung.
Option 3: Dict Type
Definieren Sie den Anforderungstext als dict[Any, Any] oder dict, wenn Sie Python 3.9 verwenden. Diese Option bietet zwar keine benutzerdefinierten Validierungen, aber Flexibilität.
Option 4: Starlettes Anforderungsobjekt
Greifen Sie direkt über das Starlette-Anforderungsobjekt auf den Anforderungstext zu. Beachten Sie, dass dieser Ansatz die Verwendung von async def und die manuelle Handhabung der JSON-Analyse erfordert.
Testoptionen
Zum Testen der oben genannten Optionen sollten Sie die Verwendung der Python-Anforderungsbibliothek in Betracht ziehen oder die JavaScript-Abruf-API. Stellen Sie sicher, dass die Anforderungsheader den entsprechenden Inhaltstyp enthalten (z. B. application/json) und dass der Text die erforderlichen JSON-Daten enthält.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit 422-Fehlern beim Senden von JSON-POST-Anfragen in FastAPI um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!