You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

Query-Parameter-Modelle

Wenn Sie eine Gruppe von Query-Parametern haben, die miteinander in Beziehung stehen, können Sie ein Pydantic-Modell erstellen, um diese zu deklarieren.

Dadurch können Sie das Modell an mehreren Stellen wiederverwenden und gleichzeitig Validierungen und Metadaten für alle Parameter auf einmal deklarieren. 😎

/// note | Hinweis

Dies wird seit FastAPI Version 0.115.0 unterstützt. 🤓

///

Query-Parameter mit einem Pydantic-Modell

Deklarieren Sie die benötigten Query-Parameter in einem Pydantic-Modell und dann den Parameter als Query:

{* ../../docs_src/query_param_models/tutorial001_an_py310.py hl[9:13,17] *}

FastAPI wird die Daten für jedes Feld aus den Query-Parametern der Anfrage extrahieren und Ihnen das definierte Pydantic-Modell bereitstellen.

Die Dokumentation überprüfen

Sie können die Query-Parameter in der Dokumentations-Oberfläche unter /docs einsehen:

Zusätzliche Query-Parameter verbieten

In einigen speziellen Anwendungsfällen (wahrscheinlich nicht sehr häufig) möchten Sie möglicherweise die Query-Parameter, die Sie empfangen möchten, beschränken.

Sie können die Modellkonfiguration von Pydantic verwenden, um jegliche extra Felder zu verbieten:

{* ../../docs_src/query_param_models/tutorial002_an_py310.py hl[10] *}

Wenn ein Client versucht, einige zusätzliche Daten in den Query-Parametern zu senden, erhält er eine Error-Response.

Wenn der Client beispielsweise versucht, einen tool Query-Parameter mit dem Wert plumbus zu senden, wie:

https://example.com/items/?limit=10&tool=plumbus

erhält er eine Error-Response, die ihm mitteilt, dass der Query-Parameter tool nicht erlaubt ist:

{
    "detail": [
        {
            "type": "extra_forbidden",
            "loc": ["query", "tool"],
            "msg": "Extra inputs are not permitted",
            "input": "plumbus"
        }
    ]
}

Zusammenfassung

Sie können Pydantic-Modelle verwenden, um Query-Parameter in FastAPI zu deklarieren. 😎

/// tip | Tipp

Spoiler-Alarm: Sie können auch Pydantic-Modelle verwenden, um Cookies und Header zu deklarieren, aber darüber werden Sie später im Tutorial lesen. 🤫

///