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.7 KiB

Body – Felder

So wie Sie zusätzliche Validierung und Metadaten in Parametern der Pfadoperation-Funktion mittels Query, Path und Body deklarieren, können Sie auch innerhalb von Pydantic-Modellen zusätzliche Validierung und Metadaten deklarieren, mittels Pydantics Field.

Field importieren

Importieren Sie es zuerst:

{* ../../docs_src/body_fields/tutorial001_an_py310.py hl[4] *}

/// warning | Achtung

Beachten Sie, dass Field direkt von pydantic importiert wird, nicht von fastapi, wie die anderen (Query, Path, Body, usw.)

///

Modellattribute deklarieren

Dann können Sie Field mit Modellattributen deklarieren:

{* ../../docs_src/body_fields/tutorial001_an_py310.py hl[11:14] *}

Field funktioniert genauso wie Query, Path und Body, es hat die gleichen Parameter, usw.

/// note | Technische Details

Tatsächlich erstellen Query, Path und andere, die Sie als nächstes sehen werden, Instanzen von Unterklassen einer allgemeinen Klasse Param, welche selbst eine Unterklasse von Pydantics FieldInfo-Klasse ist.

Und Pydantics Field gibt ebenfalls eine Instanz von FieldInfo zurück.

Body gibt auch direkt Instanzen einer Unterklasse von FieldInfo zurück. Später werden Sie andere sehen, die Unterklassen der Body-Klasse sind.

Denken Sie daran, dass Query, Path und andere, wenn Sie sie von fastapi importieren, tatsächlich Funktionen sind, die spezielle Klassen zurückgeben.

///

/// tip | Tipp

Beachten Sie, wie jedes Attribut eines Modells mit einem Typ, Defaultwert und Field die gleiche Struktur hat wie ein Parameter einer Pfadoperation-Funktion, nur mit Field statt Path, Query, Body.

///

Zusätzliche Information hinzufügen

Sie können zusätzliche Information in Field, Query, Body, usw. deklarieren. Und es wird im generierten JSON-Schema untergebracht.

Sie werden später mehr darüber lernen, wie man zusätzliche Information unterbringt, wenn Sie lernen, Beispiele zu deklarieren.

/// warning | Achtung

Extra-Schlüssel, die Field überreicht werden, werden auch im resultierenden OpenAPI-Schema Ihrer Anwendung gelistet. Da diese Schlüssel möglicherweise nicht Teil der OpenAPI-Spezifikation sind, könnten einige OpenAPI-Tools, wie etwa der OpenAPI-Validator, nicht mit Ihrem generierten Schema funktionieren.

///

Zusammenfassung

Sie können Pydantics Field verwenden, um zusätzliche Validierungen und Metadaten für Modellattribute zu deklarieren.

Sie können auch die zusätzlichen Schlüsselwortargumente verwenden, um zusätzliche JSON-Schema-Metadaten zu übergeben.