From 70f036bf7cec66f8f4a593d2338e7ab072568803 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Mon, 1 Sep 2025 10:47:08 +0200 Subject: [PATCH] Temp --- docs/de/docs/index.md | 256 +++++++++++++++++++++--------------------- 1 file changed, 128 insertions(+), 128 deletions(-) diff --git a/docs/de/docs/index.md b/docs/de/docs/index.md index e18077f568..5d5b17fa09 100644 --- a/docs/de/docs/index.md +++ b/docs/de/docs/index.md @@ -8,17 +8,17 @@ FastAPI

- FastAPI-Framework, hochperformant, leicht zu erlernen, schnell zu programmieren, einsatzbereit + FastAPI-Framework, hohe Performanz, leicht zu lernen, schnell zu entwickeln, produktionsreif

Test - Coverage + Testabdeckung - Package-Version + Paketversion Unterstützte Python-Versionen @@ -33,20 +33,20 @@ --- -FastAPI ist ein modernes, schnelles (hoch performantes) Webframework zur Erstellung von APIs mit Python auf Basis von Standard-Python-Typhinweisen. +FastAPI ist ein modernes, schnelles (hohe Performanz) Web-Framework zum Erstellen von APIs mit Python, basierend auf Standard-Python-Typhinweisen. -Seine Schlüssel-Merkmale sind: +Die wichtigsten Features: -* **Schnell**: Sehr hohe Leistung, auf Augenhöhe mit **NodeJS** und **Go** (dank Starlette und Pydantic). [Eines der schnellsten verfügbaren Python-Frameworks](#performance). -* **Schnell zu programmieren**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Funktionen um etwa 200 % bis 300 %. * -* **Weniger Bugs**: Verringern Sie die von Menschen (Entwicklern) verursachten Fehler um etwa 40 %. * -* **Intuitiv**: Exzellente Editor-Unterstützung. Code-Vervollständigung überall. Weniger Debuggen. -* **Einfach**: So konzipiert, dass es einfach zu benutzen und zu erlernen ist. Weniger Zeit für das Lesen der Dokumentation. -* **Kurz**: Minimieren Sie die Verdoppelung von Code. Mehrere Funktionen aus jeder Parameterdeklaration. Weniger Bugs. -* **Robust**: Erhalten Sie produktionsreifen Code. Mit automatischer, interaktiver Dokumentation. -* **Standards-basiert**: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: OpenAPI (früher bekannt als Swagger) und JSON Schema. +* **Schnell**: Sehr hohe Performanz, auf Augenhöhe mit **NodeJS** und **Go** (dank Starlette und Pydantic). [Eines der schnellsten verfügbaren Python-Frameworks](#performance). +* **Schnell zu entwickeln**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Features um etwa 200 % bis 300 %. * +* **Weniger Bugs**: Reduzieren Sie ca. 40 % der menschlich (vom Entwickler) verursachten Fehler. * +* **Intuitiv**: Hervorragende Editor-Unterstützung. Completion überall. Weniger Zeit mit Debugging verbringen. +* **Einfach**: Darauf ausgelegt, einfach zu verwenden und zu erlernen. Weniger Zeit mit der Dokumentation verbringen. +* **Kurz**: Code-Duplizierung minimieren. Mehrere Features aus jeder Parameterdeklaration. Weniger Bugs. +* **Robust**: Produktionsreifen Code erhalten. Mit automatischer interaktiver Dokumentation. +* **Standardbasiert**: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: OpenAPI (früher bekannt als Swagger) und JSON Schema. -* Schätzung basierend auf Tests in einem internen Entwicklungsteam, das Produktionsanwendungen erstellt. +* Schätzung basierend auf Tests mit einem internen Entwicklungsteam, das Produktionsanwendungen erstellt. ## Sponsoren { #sponsors } @@ -63,51 +63,51 @@ Seine Schlüssel-Merkmale sind: -Andere Sponsoren +Weitere Sponsoren ## Meinungen { #opinions } -„_[...] Ich verwende **FastAPI** heutzutage sehr oft. [...] Ich habe tatsächlich vor, es für alle **ML-Dienste meines Teams bei Microsoft** zu verwenden. Einige davon werden in das Kernprodukt **Windows** und einige **Office**-Produkte integriert._“ +„_[...] Ich nutze **FastAPI** derzeit sehr viel. [...] Ich plane sogar, es für alle **ML-Services** meines Teams bei **Microsoft** zu verwenden. Einige davon werden in das Kernprodukt **Windows** integriert und einige in **Office**-Produkte._“ -

Kabir Khan - Microsoft (Ref)
+
Kabir Khan - Microsoft (Ref.)
--- -„_Wir haben die **FastAPI**-Bibliothek übernommen, um einen **REST**-Server zu erstellen, der für **Vorhersagen** abgefragt werden kann. [für Ludwig]_“ +„_Wir haben die **FastAPI**-Bibliothek verwendet, um einen **REST**-Server zu starten, der für **Predictions** abgefragt werden kann. [für Ludwig]_“ -
Piero Molino, Yaroslav Dudin, und Sai Sumanth Miryala - Uber (Ref)
+
Piero Molino, Yaroslav Dudin und Sai Sumanth Miryala - Uber (Ref.)
--- -„_**Netflix** freut sich, die Open-Source-Veröffentlichung unseres **Krisenmanagement**-Orchestrierung-Frameworks bekannt zu geben: **Dispatch**! [erstellt mit **FastAPI**]_“ +„_**Netflix** freut sich, die Open-Source-Veröffentlichung unseres Orchestrierungs-Frameworks für **Krisenmanagement** bekannt zu geben: **Dispatch**! [gebaut mit **FastAPI**]_“ -
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (Ref)
+
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (Ref.)
--- -„_Ich bin überglücklich mit **FastAPI**. Es macht so viel Spaß!_“ +„_Ich bin hellauf begeistert von **FastAPI**. Es macht so viel Spaß!_“ -
Brian Okken - Python Bytes Podcast-Host (Ref)
+
Brian Okken - Python Bytes-Podcast-Moderator (Ref.)
--- -„_Ehrlich, was Du gebaut hast, sieht super solide und poliert aus. In vielerlei Hinsicht ist es so, wie ich **Hug** haben wollte – es ist wirklich inspirierend, jemanden so etwas bauen zu sehen._“ +„_Ehrlich gesagt, was Sie gebaut haben, wirkt super solide und gepflegt. In vielerlei Hinsicht ist es das, was ich mir für **Hug** gewünscht habe – es ist wirklich inspirierend zu sehen, dass jemand das baut._“ -
Timothy Crosley - Hug-Autor (Ref)
+
Timothy Crosley - Hug-Ersteller (Ref.)
--- -„_Wenn Sie ein **modernes Framework** zum Erstellen von REST-APIs erlernen möchten, schauen Sie sich **FastAPI** an. [...] Es ist schnell, einfach zu verwenden und leicht zu erlernen [...]_“ +„_Wenn Sie ein **modernes Framework** zum Erstellen von REST-APIs lernen möchten, schauen Sie sich **FastAPI** an [...] Es ist schnell, einfach zu verwenden und leicht zu lernen [...]_“ -„_Wir haben zu **FastAPI** für unsere **APIs** gewechselt [...] Ich denke, es wird Ihnen gefallen [...]_“ +„_Wir sind für unsere **APIs** auf **FastAPI** umgestiegen [...] Ich denke, es wird Ihnen gefallen [...]_“ -
Ines Montani - Matthew Honnibal - Explosion AI-Gründer - spaCy-Autoren (Ref) - (Ref)
+
Ines Montani - Matthew Honnibal - Explosion AI-Gründer – spaCy-Ersteller (Ref.) - (Ref.)
--- -„_Falls irgendjemand eine Produktions-Python-API erstellen möchte, kann ich **FastAPI** wärmstens empfehlen. Es ist **wunderschön konzipiert**, **einfach zu verwenden** und **hoch skalierbar**; es ist zu einer **Schlüsselkomponente** in unserer API-First-Entwicklungsstrategie geworden und treibt viele Automatisierungen und Dienste an, wie etwa unseren virtuellen TAC-Ingenieur._“ +„_Wenn jemand eine produktionsreife Python-API bauen möchte, würde ich **FastAPI** sehr empfehlen. Es ist **wunderschön entworfen**, **einfach zu benutzen** und **hoch skalierbar**, es ist zu einer **Schlüsselkomponente** unserer API-First-Entwicklungsstrategie geworden und treibt viele Automatisierungen und Services an, wie unseren Virtual TAC Engineer._“ -
Deon Pillsbury - Cisco (Ref)
+
Deon Pillsbury - Cisco (Ref.)
--- @@ -115,16 +115,16 @@ Seine Schlüssel-Merkmale sind: -Wenn Sie eine CLI-Anwendung für das Terminal erstellen, anstelle einer Web-API, schauen Sie sich **Typer** an. +Wenn Sie eine CLI-App bauen, die im Terminal statt als Web-API verwendet wird, sehen Sie sich **Typer** an. -**Typer** ist die kleine Schwester von FastAPI. Und es soll das **FastAPI der CLIs** sein. ⌨️ 🚀 +**Typer** ist FastAPIs kleiner Bruder. Und es soll das **FastAPI der CLIs** sein. ⌨️ 🚀 -## Anforderungen { #requirements } +## Voraussetzungen { #requirements } FastAPI steht auf den Schultern von Giganten: -* Starlette für die Webanteile. -* Pydantic für die Datenanteile. +* Starlette für die Web-Teile. +* Pydantic für die Daten-Teile. ## Installation { #installation } @@ -144,9 +144,9 @@ $ pip install "fastapi[standard]" ## Beispiel { #example } -### Erstellung { #create-it } +### Erstellen { #create-it } -Erstellen Sie eine Datei `main.py` mit dem folgenden Inhalt: +Erstellen Sie eine Datei `main.py` mit: ```Python from typing import Union @@ -167,9 +167,9 @@ def read_item(item_id: int, q: Union[str, None] = None): ```
-Oder verwenden Sie async def ... +Oder async def verwenden ... -Wenn Ihr Code `async` / `await` verwendet, benutzen Sie `async def`: +Wenn Ihr Code `async` / `await` verwendet, nutzen Sie `async def`: ```Python hl_lines="9 14" from typing import Union @@ -191,11 +191,11 @@ async def read_item(item_id: int, q: Union[str, None] = None): **Hinweis**: -Wenn Sie das nicht kennen, schauen Sie sich den Abschnitt _„In Eile?“_ über `async` und `await` in der Dokumentation an. +Wenn Sie es nicht wissen, sehen Sie sich den Abschnitt „In Eile?“ über `async` und `await` in der Dokumentation an.
-### Starten { #run-it } +### Ausführen { #run-it } Starten Sie den Server mit: @@ -227,36 +227,36 @@ INFO: Application startup complete.
-Was der Befehl fastapi dev main.py macht ... +Über den Befehl fastapi dev main.py ... -Der Befehl `fastapi dev` liest Ihre `main.py`-Datei, erkennt die **FastAPI**-App darin und startet einen Server mit Uvicorn. +Der Befehl `fastapi dev` liest Ihre Datei `main.py`, erkennt die **FastAPI**-App darin und startet einen Server mit Uvicorn. -Standardmäßig wird `fastapi dev` mit aktiviertem Auto-Reload für die lokale Entwicklung gestartet. +Standardmäßig startet `fastapi dev` mit aktiviertem Auto-Reload für lokale Entwicklung. -Sie können mehr darüber in der FastAPI CLI-Dokumentation lesen. +Mehr dazu in der FastAPI-CLI-Dokumentation.
-### Es testen { #check-it } +### Prüfen { #check-it } Öffnen Sie Ihren Browser unter http://127.0.0.1:8000/items/5?q=somequery. -Sie sehen die JSON-Response als: +Sie sehen die JSON-Response: ```JSON {"item_id": 5, "q": "somequery"} ``` -Sie haben bereits eine API erstellt, welche: +Sie haben bereits eine API erstellt, die: -* HTTP-Requests auf den _Pfaden_ `/` und `/items/{item_id}` entgegennimmt. -* Beide _Pfade_ erhalten `GET` Operationen (auch bekannt als HTTP _Methoden_). +* HTTP-Requests in den _Pfade(n)_ `/` und `/items/{item_id}` empfängt. +* Beide _Pfade_ nehmen `GET`-Operationen (auch bekannt als HTTP-_Methoden_) an. * Der _Pfad_ `/items/{item_id}` hat einen _Pfad-Parameter_ `item_id`, der ein `int` sein sollte. -* Der _Pfad_ `/items/{item_id}` hat einen optionalen `str` _Query-Parameter_ `q`. +* Der _Pfad_ `/items/{item_id}` hat einen optionalen `str`-_Query-Parameter_ `q`. ### Interaktive API-Dokumentation { #interactive-api-docs } -Gehen Sie nun auf http://127.0.0.1:8000/docs. +Gehen Sie jetzt zu http://127.0.0.1:8000/docs. Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von Swagger UI): @@ -264,17 +264,17 @@ Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von http://127.0.0.1:8000/redoc. +Und jetzt gehen Sie zu http://127.0.0.1:8000/redoc. Sie sehen die alternative automatische Dokumentation (bereitgestellt von ReDoc): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) -## Beispiel Aktualisierung { #example-upgrade } +## Beispiel aktualisieren { #example-upgrade } -Ändern Sie jetzt die Datei `main.py`, um den Body eines `PUT`-Requests zu empfangen. +Ändern Sie nun die Datei `main.py`, um einen Body von einem `PUT`-Request zu empfangen. -Deklarieren Sie den Body mithilfe von Standard-Python-Typen, dank Pydantic. +Deklarieren Sie den Body mit Standard-Python-Typen, dank Pydantic. ```Python hl_lines="4 9-12 25-27" from typing import Union @@ -306,41 +306,41 @@ def update_item(item_id: int, item: Item): return {"item_name": item.name, "item_id": item_id} ``` -Der `fastapi dev` Server sollte automatisch neu laden. +Der `fastapi dev`-Server sollte automatisch neu laden. -### Aktualisierung der interaktiven API-Dokumentation { #interactive-api-docs-upgrade } +### Interaktive API-Dokumentation aktualisieren { #interactive-api-docs-upgrade } -Gehen Sie jetzt auf http://127.0.0.1:8000/docs. +Gehen Sie jetzt zu http://127.0.0.1:8000/docs. * Die interaktive API-Dokumentation wird automatisch aktualisiert, einschließlich des neuen Bodys: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) -* Klicken Sie auf die Taste „Try it out“, damit können Sie die Parameter ausfüllen und direkt mit der API interagieren: +* Klicken Sie auf die Schaltfläche „Try it out“, damit können Sie die Parameter ausfüllen und direkt mit der API interagieren: -![Swagger UI Interaktion](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) -* Klicken Sie dann auf die Taste „Execute“, die Benutzeroberfläche wird mit Ihrer API kommunizieren, sendet die Parameter, holt die Ergebnisse und zeigt sie auf dem Bildschirm an: +* Klicken Sie dann auf die Schaltfläche „Execute“, die Benutzeroberfläche kommuniziert mit Ihrer API, sendet die Parameter, erhält die Ergebnisse und zeigt sie auf dem Bildschirm an: -![Swagger UI Interaktion](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) -### Aktualisierung der alternativen API-Dokumentation { #alternative-api-docs-upgrade } +### Alternative API-Dokumentation aktualisieren { #alternative-api-docs-upgrade } -Und nun gehen Sie auf http://127.0.0.1:8000/redoc. +Und jetzt gehen Sie zu http://127.0.0.1:8000/redoc. -* Die alternative Dokumentation wird ebenfalls den neuen Query-Parameter und Body widerspiegeln: +* Die alternative Dokumentation spiegelt ebenfalls den neuen Query-Parameter und den Body wider: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) ### Zusammenfassung { #recap } -Zusammengefasst deklarieren Sie **einmal** die Typen von Parametern, Body, usw. als Funktionsparameter. +Kurz gesagt, Sie deklarieren **einmal** die Typen von Parametern, Body, usw. als Funktionsparameter. -Das machen Sie mit modernen Standard-Python-Typen. +Sie tun das mit modernen Standard-Python-Typen. -Sie müssen keine neue Syntax, Methoden oder Klassen einer bestimmten Bibliothek usw. lernen. +Sie müssen keine neue Syntax, Methoden oder Klassen einer bestimmten Bibliothek, usw. lernen. -Nur Standard-**Python**. +Einfach Standard-**Python**. Zum Beispiel für ein `int`: @@ -357,55 +357,55 @@ item: Item ... und mit dieser einen Deklaration erhalten Sie: * Editor-Unterstützung, einschließlich: - * Code-Vervollständigung. + * Completion. * Typprüfungen. * Validierung von Daten: - * Automatische und eindeutige Fehler, wenn die Daten ungültig sind. - * Validierung auch für tief verschachtelte JSON-Objekte. -* Konvertierung von Eingabedaten: Aus dem Netzwerk kommend, zu Python-Daten und -Typen. Lesen von: + * Automatische und klare Fehler, wenn die Daten ungültig sind. + * Validierung sogar für tief verschachtelte JSON-Objekte. +* Konvertierung von Eingabedaten: vom Netzwerk zu Python-Daten und -Typen. Lesen aus: * JSON. * Pfad-Parametern. * Query-Parametern. * Cookies. - * Header-Feldern. + * Headern. * Formularen. * Dateien. -* Konvertierung von Ausgabedaten: Konvertierung von Python-Daten und -Typen zu Netzwerkdaten (als JSON): - * Konvertieren von Python-Typen (`str`, `int`, `float`, `bool`, `list`, usw.). +* Konvertierung von Ausgabedaten: Umwandeln von Python-Daten und -Typen in Netzwerkdaten (als JSON): + * Python-Typen konvertieren (`str`, `int`, `float`, `bool`, `list`, usw.). * `datetime`-Objekte. * `UUID`-Objekte. * Datenbankmodelle. * ... und viele mehr. -* Automatische interaktive API-Dokumentation, einschließlich 2 alternativer Benutzeroberflächen: +* Automatische interaktive API-Dokumentation, inklusive 2 alternativen Benutzeroberflächen: * Swagger UI. * ReDoc. --- -Um auf das vorherige Codebeispiel zurückzukommen, **FastAPI** wird: - -* Überprüfen, dass es eine `item_id` im Pfad für `GET`- und `PUT`-Requests gibt. -* Überprüfen, ob die `item_id` vom Typ `int` für `GET`- und `PUT`-Requests ist. - * Falls nicht, wird dem Client ein nützlicher, eindeutiger Fehler angezeigt. -* Prüfen, ob es einen optionalen Query-Parameter namens `q` (wie in `http://127.0.0.1:8000/items/foo?q=somequery`) für `GET`-Requests gibt. - * Da der `q`-Parameter mit `= None` deklariert ist, ist er optional. - * Ohne das `None` wäre er erforderlich (wie der Body im Fall von `PUT`). -* Bei `PUT`-Requests an `/items/{item_id}` den Body als JSON lesen: - * Prüfen, ob er ein erforderliches Attribut `name` hat, das ein `str` sein muss. - * Prüfen, ob er ein erforderliches Attribut `price` hat, das ein `float` sein muss. - * Prüfen, ob er ein optionales Attribut `is_offer` hat, das ein `bool` sein muss, falls vorhanden. - * All dies würde auch für tief verschachtelte JSON-Objekte funktionieren. +Zurück zum vorherigen Codebeispiel – **FastAPI** wird: + +* Validieren, dass es einen `item_id` im Pfad für `GET`- und `PUT`-Requests gibt. +* Validieren, dass der `item_id` vom Typ `int` ist für `GET`- und `PUT`-Requests. + * Falls nicht, sieht der Client einen hilfreichen, klaren Fehler. +* Prüfen, ob es für `GET`-Requests einen optionalen Query-Parameter namens `q` gibt (wie in `http://127.0.0.1:8000/items/foo?q=somequery`). + * Da der Parameter `q` mit `= None` deklariert ist, ist er optional. + * Ohne das `None` wäre er erforderlich (so wie der Body im Fall von `PUT`). +* Für `PUT`-Requests auf `/items/{item_id}` den Body als JSON lesen: + * Prüfen, dass er ein erforderliches Attribut `name` hat, das ein `str` sein sollte. + * Prüfen, dass er ein erforderliches Attribut `price` hat, das ein `float` sein muss. + * Prüfen, dass er ein optionales Attribut `is_offer` hat, das ein `bool` sein sollte, falls vorhanden. + * All dies funktioniert auch für tief verschachtelte JSON-Objekte. * Automatisch von und nach JSON konvertieren. -* Alles mit OpenAPI dokumentieren, welches verwendet werden kann von: +* Alles mit OpenAPI dokumentieren, das verwendet werden kann von: * Interaktiven Dokumentationssystemen. - * Automatisch Client-Code generierenden Systemen für viele Sprachen. -* Zwei interaktive Dokumentation-Webschnittstellen direkt zur Verfügung stellen. + * Systemen zur automatischen Client-Code-Generierung, für viele Sprachen. +* Direkt 2 interaktive Dokumentations-Weboberflächen bereitstellen. --- -Wir haben nur an der Oberfläche gekratzt, aber Sie bekommen schon eine Vorstellung davon, wie das Ganze funktioniert. +Wir haben hier nur an der Oberfläche gekratzt, aber Sie bekommen bereits eine Vorstellung davon, wie alles funktioniert. -Versuchen Sie, diese Zeile zu ändern: +Versuchen Sie, die Zeile zu ändern: ```Python return {"item_name": item.name, "item_id": item_id} @@ -423,60 +423,60 @@ Versuchen Sie, diese Zeile zu ändern: ... "item_price": item.price ... ``` -... und sehen Sie, wie Ihr Editor die Attribute automatisch ausfüllt und ihre Typen kennt: +... und sehen Sie, wie Ihr Editor die Attribute automatisch vervollständigt und ihre Typen kennt: -![Editor Unterstützung](https://fastapi.tiangolo.com/img/vscode-completion.png) +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) -Für ein vollständigeres Beispiel, mit weiteren Funktionen, siehe das Tutorial – Benutzerhandbuch. +Ein vollständigeres Beispiel mit mehr Features finden Sie im das Tutorial – Benutzerhandbuch. -**Spoiler-Alarm**: Das Tutorial – Benutzerhandbuch enthält: +**Spoilerwarnung**: das Tutorial – Benutzerhandbuch umfasst: -* Deklaration von **Parametern** von anderen verschiedenen Stellen wie: **Header-Felder**, **Cookies**, **Formularfelder** und **Dateien**. -* Wie man **Validierungseinschränkungen** wie `maximum_length` oder `regex` setzt. -* Ein sehr leistungsfähiges und einfach zu bedienendes System für **Dependency Injection**. -* Sicherheit und Authentifizierung, einschließlich Unterstützung für **OAuth2** mit **JWT-Tokens** und **HTTP-Basic**-Authentifizierung. -* Fortgeschrittenere (aber ebenso einfache) Techniken zur Deklaration **tief verschachtelter JSON-Modelle** (dank Pydantic). -* **GraphQL** Integration mit Strawberry und anderen Bibliotheken. -* Viele zusätzliche Funktionen (dank Starlette) wie: +* Deklaration von **Parametern** aus verschiedenen Quellen wie: **Header**, **Cookies**, **Formularfelder** und **Dateien**. +* Wie **Validierungs-Constraints** wie `maximum_length` oder `regex` gesetzt werden. +* Ein sehr mächtiges und leicht zu nutzendes System für **Dependency Injection**. +* Security und Authentifizierung, inklusive Support für **OAuth2** mit **JWT-Token** und **HTTP Basic**-Auth. +* Fortgeschrittene (aber ebenso einfache) Techniken für die Deklaration **tief verschachtelter JSON-Modelle** (dank Pydantic). +* **GraphQL**-Integration mit Strawberry und anderen Bibliotheken. +* Viele zusätzliche Features (dank Starlette), wie: * **WebSockets** * extrem einfache Tests auf Basis von HTTPX und `pytest` * **CORS** - * **Cookie Sessions** + * **Cookie-Sessions** * ... und mehr. ## Performanz { #performance } -Unabhängige TechEmpower-Benchmarks zeigen **FastAPI**-Anwendungen, die unter Uvicorn laufen, als eines der schnellsten verfügbaren Python-Frameworks, nur hinter Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*) +Unabhängige TechEmpower-Benchmarks zeigen, dass **FastAPI**-Anwendungen unter Uvicorn als eines der schnellsten verfügbaren Python-Frameworks laufen, nur unterhalb von Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*) -Um mehr darüber zu erfahren, siehe den Abschnitt Benchmarks. +Um mehr darüber zu verstehen, sehen Sie den Abschnitt Benchmarks. ## Abhängigkeiten { #dependencies } FastAPI hängt von Pydantic und Starlette ab. -### `standard` Abhängigkeiten { #standard-dependencies } +### `standard`-Abhängigkeiten { #standard-dependencies } -Wenn Sie FastAPI mit `pip install "fastapi[standard]"` installieren, kommt es mit der `standard` Gruppe von optionalen Abhängigkeiten: +Wenn Sie FastAPI mit `pip install "fastapi[standard]"` installieren, kommt es mit der `standard`-Gruppe optionaler Abhängigkeiten: -Wird von Pydantic verwendet: +Verwendet von Pydantic: -* email-validator - für E-Mail-Validierung. +* email-validator – für E-Mail-Validierung. -Wird von Starlette verwendet: +Verwendet von Starlette: -* httpx - erforderlich, wenn Sie den `TestClient` verwenden möchten. -* jinja2 - erforderlich, wenn Sie die Standardkonfiguration für Templates verwenden möchten. -* python-multipart - erforderlich, wenn Sie Formulare mittels `request.form()` „parsen“ möchten. +* httpx – Erforderlich, wenn Sie den `TestClient` verwenden möchten. +* jinja2 – Erforderlich, wenn Sie die Default-Template-Konfiguration verwenden möchten. +* python-multipart – Erforderlich, wenn Sie Formular-„parsing“ mit `request.form()` unterstützen möchten. -Wird von FastAPI verwendet: +Verwendet von FastAPI: -* uvicorn - für den Server, der Ihre Anwendung lädt und bereitstellt. Dies beinhaltet `uvicorn[standard]`, das einige Abhängigkeiten (z. B. `uvloop`) enthält, die für hoch performantes Bereitstellen benötigt werden. -* `fastapi-cli[standard]` - um den `fastapi` Befehl bereitzustellen. - * Dies beinhaltet `fastapi-cloud-cli`, das es Ihnen ermöglicht, Ihre FastAPI-Anwendung auf FastAPI Cloud bereitzustellen. +* uvicorn – für den Server, der Ihre Anwendung lädt und bereitstellt. Dies umfasst `uvicorn[standard]`, das einige Abhängigkeiten (z. B. `uvloop`) beinhaltet, die für eine Bereitstellung mit hoher Performanz benötigt werden. +* `fastapi-cli[standard]` – um den Befehl `fastapi` bereitzustellen. + * Dies umfasst `fastapi-cloud-cli`, womit Sie Ihre FastAPI-Anwendung auf FastAPI Cloud deployen können. -### Ohne `standard` Abhängigkeiten { #without-standard-dependencies } +### Ohne `standard`-Abhängigkeiten { #without-standard-dependencies } -Wenn Sie die `standard` optionalen Abhängigkeiten nicht einschließen möchten, können Sie mit `pip install fastapi` statt `pip install "fastapi[standard]"` installieren. +Wenn Sie die optionalen `standard`-Abhängigkeiten nicht einschließen möchten, können Sie mit `pip install fastapi` statt `pip install "fastapi[standard]"` installieren. ### Ohne `fastapi-cloud-cli` { #without-fastapi-cloud-cli } @@ -488,13 +488,13 @@ Es gibt einige zusätzliche Abhängigkeiten, die Sie installieren möchten. Zusätzliche optionale Pydantic-Abhängigkeiten: -* pydantic-settings - für die Verwaltung von Einstellungen. -* pydantic-extra-types - für zusätzliche Typen, die mit Pydantic verwendet werden sollen. +* pydantic-settings – für Settings-Management. +* pydantic-extra-types – für zusätzliche Typen zur Verwendung mit Pydantic. Zusätzliche optionale FastAPI-Abhängigkeiten: -* orjson - erforderlich, wenn Sie `ORJSONResponse` verwenden möchten. -* ujson - erforderlich, wenn Sie `UJSONResponse` verwenden möchten. +* orjson – Erforderlich, wenn Sie `ORJSONResponse` verwenden möchten. +* ujson – Erforderlich, wenn Sie `UJSONResponse` verwenden möchten. ## Lizenz { #license }