diff --git a/docs/de/docs/tutorial/query-params-str-validations.md b/docs/de/docs/tutorial/query-params-str-validations.md index bd77030ac..6d27adb36 100644 --- a/docs/de/docs/tutorial/query-params-str-validations.md +++ b/docs/de/docs/tutorial/query-params-str-validations.md @@ -1,4 +1,4 @@ -# Query-Parameter und String-Validierungen +# Query-Parameter und String-Validierungen { #query-parameters-and-string-validations } **FastAPI** ermöglicht es Ihnen, zusätzliche Informationen und Validierungen für Ihre Parameter zu deklarieren. @@ -16,11 +16,11 @@ Die Verwendung von `str | None` ermöglicht es Ihrem Editor, Ihnen bessere Unter /// -## Zusätzliche Validierung +## Zusätzliche Validierung { #additional-validation } Wir werden sicherstellen, dass, obwohl `q` optional ist, wann immer es bereitgestellt wird, **seine Länge 50 Zeichen nicht überschreitet**. -### `Query` und `Annotated` importieren +### `Query` und `Annotated` importieren { #import-query-and-annotated } Um dies zu erreichen, importieren Sie zuerst: @@ -39,7 +39,7 @@ Stellen Sie sicher, dass Sie [die FastAPI-Version aktualisieren](../deployment/v /// -## Verwenden von `Annotated` im Typ für den `q`-Parameter +## Verwenden von `Annotated` im Typ für den `q`-Parameter { #use-annotated-in-the-type-for-the-q-parameter } Erinnern Sie sich, dass ich Ihnen zuvor in [Python-Typen-Intro](../python-types.md#type-hints-with-metadata-annotations){.internal-link target=_blank} gesagt habe, dass `Annotated` verwendet werden kann, um Metadaten zu Ihren Parametern hinzuzufügen? @@ -85,7 +85,7 @@ Beide dieser Versionen bedeuten dasselbe: `q` ist ein Parameter, der ein `str` o Jetzt springen wir zu den spannenden Dingen. 🎉 -## `Query` zu `Annotated` im `q`-Parameter hinzufügen +## `Query` zu `Annotated` im `q`-Parameter hinzufügen { #add-query-to-annotated-in-the-q-parameter } Da wir nun `Annotated` haben, in das wir mehr Informationen (in diesem Fall einige zusätzliche Validierungen) einfügen können, fügen Sie `Query` innerhalb von `Annotated` hinzu und setzen Sie den Parameter `max_length` auf `50`: @@ -107,7 +107,7 @@ FastAPI wird nun: * Einen **klaren Fehler** für den Client anzeigen, wenn die Daten ungültig sind * Den Parameter in der OpenAPI-Schema-*Pfadoperation* **dokumentieren** (sodass er in der **automatischen Dokumentation** angezeigt wird) -## Alternative (alt): `Query` als Defaultwert +## Alternative (alt): `Query` als Defaultwert { #alternative-old-query-as-the-default-value } Frühere Versionen von FastAPI (vor 0.95.0) erforderten, dass Sie `Query` als den Defaultwert Ihres Parameters verwendeten, anstatt es innerhalb von `Annotated` zu platzieren. Es besteht eine hohe Wahrscheinlichkeit, dass Sie Code sehen, der es so verwendet, also werde ich es Ihnen erklären. @@ -145,7 +145,7 @@ q: str | None = Query(default=None, max_length=50) Dies wird die Daten validieren, einen klaren Fehler anzeigen, wenn die Daten nicht gültig sind, und den Parameter in der OpenAPI-Schema-*Pfadoperation* dokumentieren. -### `Query` als Defaultwert oder in `Annotated` +### `Query` als Defaultwert oder in `Annotated` { #query-as-the-default-value-or-in-annotated } Beachten Sie, dass wenn Sie `Query` innerhalb von `Annotated` verwenden, Sie den `default`-Parameter für `Query` nicht verwenden dürfen. @@ -171,7 +171,7 @@ q: Annotated[str, Query()] = "rick" q: str = Query(default="rick") ``` -### Vorzüge von `Annotated` +### Vorzüge von `Annotated` { #advantages-of-annotated } **Es wird empfohlen, `Annotated` zu verwenden**, anstelle des Defaultwertes in Funktionsparametern, es ist aus mehreren Gründen **besser**. 🤓 @@ -183,13 +183,13 @@ Wenn Sie `Annotated` nicht verwenden und stattdessen die **(alte) Defaultwert-St Da `Annotated` mehr als eine Metadaten-Annotation haben kann, könnten Sie dieselbe Funktion sogar mit anderen Tools verwenden, wie z. B. Typer. 🚀 -## Mehr Validierungen hinzufügen +## Mehr Validierungen hinzufügen { #add-more-validations } Sie können auch einen `min_length`-Parameter hinzufügen: {* ../../docs_src/query_params_str_validations/tutorial003_an_py310.py hl[10] *} -## Reguläre Ausdrücke hinzufügen +## Reguläre Ausdrücke hinzufügen { #add-regular-expressions } Sie können einen regulären Ausdruck `pattern` definieren, mit dem der Parameter übereinstimmen muss: @@ -205,7 +205,7 @@ Wenn Sie sich mit all diesen **„regulärer Ausdruck“**-Ideen verloren fühle Aber nun wissen Sie, dass Sie sie in **FastAPI** immer dann verwenden können, wenn Sie sie brauchen. -### Pydantic v1 `regex` statt `pattern` +### Pydantic v1 `regex` statt `pattern` { #pydantic-v1-regex-instead-of-pattern } Vor Pydantic Version 2 und FastAPI 0.100.0, hieß der Parameter `regex` statt `pattern`, aber das ist jetzt obsolet. @@ -219,7 +219,7 @@ Sie könnten immer noch Code sehen, der den alten Namen verwendet: Beachten Sie aber, dass das obsolet ist und auf den neuen Parameter `pattern` aktualisiert werden sollte. 🤓 -## Defaultwerte +## Defaultwerte { #default-values } Natürlich können Sie Defaultwerte verwenden, die nicht `None` sind. @@ -233,7 +233,7 @@ Ein Defaultwert irgendeines Typs, einschließlich `None`, macht den Parameter op /// -## Erforderliche Parameter +## Erforderliche Parameter { #required-parameters } Wenn wir keine weiteren Validierungen oder Metadaten deklarieren müssen, können wir den `q` Query-Parameter erforderlich machen, indem wir einfach keinen Defaultwert deklarieren, wie: @@ -257,7 +257,7 @@ Wenn Sie einen Wert als erforderlich deklarieren müssen, während Sie `Query` v {* ../../docs_src/query_params_str_validations/tutorial006_an_py39.py hl[9] *} -### Erforderlich, kann `None` sein +### Erforderlich, kann `None` sein { #required-can-be-none } Sie können deklarieren, dass ein Parameter `None` akzeptieren kann, aber trotzdem erforderlich ist. Dadurch müssten Clients den Wert senden, selbst wenn der Wert `None` ist. @@ -265,7 +265,7 @@ Um das zu tun, können Sie deklarieren, dass `None` ein gültiger Typ ist, einfa {* ../../docs_src/query_params_str_validations/tutorial006c_an_py310.py hl[9] *} -## Query-Parameter-Liste / Mehrere Werte +## Query-Parameter-Liste / Mehrere Werte { #query-parameter-list-multiple-values } Wenn Sie einen Query-Parameter explizit mit `Query` definieren, können Sie ihn auch so deklarieren, dass er eine Liste von Werten empfängt, oder anders gesagt, dass er mehrere Werte empfangen kann. @@ -302,7 +302,7 @@ Die interaktive API-Dokumentation wird entsprechend aktualisiert, um mehrere Wer -### Query-Parameter-Liste / Mehrere Werte mit Defaults +### Query-Parameter-Liste / Mehrere Werte mit Defaults { #query-parameter-list-multiple-values-with-defaults } Sie können auch eine Default-`list` von Werten definieren, wenn keine bereitgestellt werden: @@ -325,7 +325,7 @@ gehen, wird der Default für `q` sein: `["foo", "bar"]`, und Ihre Antwort wird s } ``` -#### Nur `list` verwenden +#### Nur `list` verwenden { #using-just-list } Sie können auch `list` direkt verwenden, anstelle von `list[str]`: @@ -339,7 +339,7 @@ Zum Beispiel würde `list[int]` überprüfen (und dokumentieren), dass der Inhal /// -## Mehr Metadaten deklarieren +## Mehr Metadaten deklarieren { #declare-more-metadata } Sie können mehr Informationen über den Parameter hinzufügen. @@ -361,7 +361,7 @@ Und eine `description`: {* ../../docs_src/query_params_str_validations/tutorial008_an_py310.py hl[14] *} -## Alias-Parameter +## Alias-Parameter { #alias-parameters } Stellen Sie sich vor, Sie möchten, dass der Parameter `item-query` ist. @@ -381,7 +381,7 @@ Dann können Sie ein `alias` deklarieren, und dieser Alias wird verwendet, um de {* ../../docs_src/query_params_str_validations/tutorial009_an_py310.py hl[9] *} -## Parameter als deprecated ausweisen +## Parameter als deprecated ausweisen { #deprecating-parameters } Nehmen wir an, Ihnen gefällt dieser Parameter nicht mehr. @@ -395,13 +395,13 @@ Die Dokumentation wird es so anzeigen: -## Parameter von OpenAPI ausschließen +## Parameter von OpenAPI ausschließen { #exclude-parameters-from-openapi } Um einen Query-Parameter aus dem generierten OpenAPI-Schema auszuschließen (und somit aus den automatischen Dokumentationssystemen), setzen Sie den Parameter `include_in_schema` von `Query` auf `False`: {* ../../docs_src/query_params_str_validations/tutorial014_an_py310.py hl[10] *} -## Benutzerdefinierte Validierung +## Benutzerdefinierte Validierung { #custom-validation } Es kann Fälle geben, in denen Sie eine **benutzerdefinierte Validierung** durchführen müssen, die nicht mit den oben gezeigten Parametern durchgeführt werden kann. @@ -433,7 +433,7 @@ Diese benutzerdefinierten Validatoren sind für Dinge gedacht, die einfach mit d /// -### Verstehen Sie dieses Codebeispiel +### Verstehen Sie dieses Codebeispiel { #understand-that-code } Der wichtige Punkt ist einfach die Verwendung von **`AfterValidator` mit einer Funktion innerhalb von `Annotated`**. Fühlen Sie sich frei, diesen Teil zu überspringen. 🤸 @@ -441,13 +441,13 @@ Der wichtige Punkt ist einfach die Verwendung von **`AfterValidator` mit einer F Aber wenn Sie neugierig auf dieses spezielle Codebeispiel sind und immer noch Spaß haben, hier sind einige zusätzliche Details. -#### Zeichenkette mit `value.startswith()` +#### Zeichenkette mit `value.startswith()` { #string-with-value-startswith } Haben Sie bemerkt? Eine Zeichenkette mit `value.startswith()` kann ein Tuple übernehmen, und es wird jeden Wert im Tuple überprüfen: {* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[16:19] hl[17] *} -#### Ein zufälliges Item +#### Ein zufälliges Item { #a-random-item } Mit `data.items()` erhalten wir ein iterierbares Objekt mit Tupeln, die Schlüssel und Wert für jedes Dictionary-Element enthalten. @@ -463,7 +463,7 @@ Wenn der Benutzer also keine Artikel-ID bereitgestellt hat, erhält er trotzdem {* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[22:30] hl[29] *} -## Zusammenfassung +## Zusammenfassung { #recap } Sie können zusätzliche Validierungen und Metadaten für Ihre Parameter deklarieren.