Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich einen FastAPI-Endpunkt erstellen, der sowohl Formular- als auch JSON-Daten akzeptiert?

Wie kann ich einen FastAPI-Endpunkt erstellen, der sowohl Formular- als auch JSON-Daten akzeptiert?

DDD
DDDOriginal
2024-10-27 11:33:02246Durchsuche

 How Can I Create a FastAPI Endpoint That Accepts Both Form and JSON Data?

Erstellen eines FastAPI-Endpunkts für den flexiblen Datenempfang

In FastAPI ist es möglich, einen Endpunkt zu erstellen, der sowohl Formular- als auch JSON-Anfragetexte verarbeiten kann.

Option 1: Inhaltstyp dynamisch bestimmen

  • Erstellen Sie eine Abhängigkeitsfunktion, um den Inhaltstyp-Header zu überprüfen.
  • Analysieren Sie den Anforderungstext mithilfe der Methoden von Starlette auf den Inhaltstyp.
  • Verwenden Sie einen Try-Except-Block, um etwaige Parsing-Fehler abzufangen.

Option 2: Optionale Parameter verwenden

  • Definieren Sie Ihren Endpunkt mit Datei- und Formularparametern, die als optional markiert sind.
  • Überprüfen Sie, ob die Parameter Werte haben, um festzustellen, ob Formulardaten gesendet wurden.
  • Andernfalls versuchen Sie, den Anforderungstext als zu analysieren JSON.

Option 3: Separate Endpunkte mit Middleware

  • Erstellen Sie separate Endpunkte für JSON und Formulardatenanfragen.
  • Verwenden eine Middleware, um den Inhaltstyp zu überprüfen und die Anfrage an den entsprechenden Endpunkt umzuleiten.

Option 4: Kombinierte Anfragen berücksichtigen

  • Verwenden Sie model_validate_json von Pydantic ()-Methode zum Parsen von in Formularparametern übergebenen JSON-Körpern.
  • Ermöglichen Sie die Übermittlung von JSON- und Formulardaten in einer einzigen Anfrage, indem Sie Endpunktparameter optional machen.

Das obige ist der detaillierte Inhalt vonWie kann ich einen FastAPI-Endpunkt erstellen, der sowohl Formular- als auch JSON-Daten akzeptiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn