FastAPI ist ein modernes, schnelles (hohe Performanz) Web-Framework zum Erstellen von APIs mit Python, basierend auf Standard-Python-Typhinweisen.
FastAPI ist ein modernes, schnelles (hoch performantes) Webframework zur Erstellung von APIs mit Python auf Basis von Standard-Python-Typhinweisen.
Die wichtigsten Features:
Seine Schlüssel-Merkmale sind:
* **Schnell**: Sehr hohe Performanz, auf Augenhöhe mit **NodeJS** und **Go** (dank Starlette und Pydantic). [Eines der schnellsten verfügbaren Python-Frameworks](#performance).
* **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 %. *
* **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. *
* **Weniger Bugs**: Verringern Sie die von Menschen (Entwicklern) verursachten Fehler um etwa 40 %. *
* **Intuitiv**: Hervorragende Editor-Unterstützung. <abbrtitle="auch bekannt als: Auto-Complete, Autocompletion, IntelliSense">Completion</abbr> überall. Weniger Zeit mit Debugging verbringen.
* **Intuitiv**: Hervorragende Editor-Unterstützung. <abbrtitle="auch bekannt als Auto-Complete, Autovervollständigung, IntelliSense">Code-Vervollständigung</abbr> überall. Weniger Zeit mit Debuggen verbringen.
* **Einfach**: Darauf ausgelegt, einfach zu verwenden und zu erlernen. Weniger Zeit mit der Dokumentation verbringen.
* **Einfach**: So konzipiert, dass es einfach zu benutzen und zu erlernen ist. Weniger Zeit mit dem Lesen von Dokumentation verbringen.
* **Kurz**: Code-Duplizierung minimieren. Mehrere Features aus jeder Parameterdeklaration. Weniger Bugs.
* **Kurz**: Minimieren Sie die Verdoppelung von Code. Mehrere Features aus jeder Parameterdeklaration. Weniger Bugs.
* **Robust**: Produktionsreifen Code erhalten. Mit automatischer interaktiver Dokumentation.
* **Robust**: Erhalten Sie produktionsreifen Code. Mit automatischer, interaktiver Dokumentation.
* **Standardbasiert**: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: <ahref="https://github.com/OAI/OpenAPI-Specification"class="external-link"target="_blank">OpenAPI</a> (früher bekannt als Swagger) und <ahref="https://json-schema.org/"class="external-link"target="_blank">JSON Schema</a>.
* **Standards-basiert**: Basierend auf (und vollständig kompatibel mit) den offenen Standards für APIs: <ahref="https://github.com/OAI/OpenAPI-Specification"class="external-link"target="_blank">OpenAPI</a> (früher bekannt als Swagger) und <ahref="https://json-schema.org/"class="external-link"target="_blank">JSON Schema</a>.
<small>* Schätzung basierend auf Tests mit einem internen Entwicklungsteam, das Produktionsanwendungen erstellt.</small>
<small>* Schätzung basierend auf Tests in einem internen Entwicklungsteam, das Produktionsanwendungen erstellt.</small>
„_[...] 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._“
„_[...] Ich verwende **FastAPI** heutzutage sehr oft. [...] Ich habe tatsächlich vor, es für alle **ML-Services meines Teams bei Microsoft** zu verwenden. Einige davon werden in das Kernprodukt **Windows** und einige **Office**-Produkte integriert._“
„_Wir haben die **FastAPI**-Bibliothek verwendet, um einen **REST**-Server zu starten, der für **Predictions** abgefragt werden kann. [für Ludwig]_“
„_Wir haben die **FastAPI**-Bibliothek übernommen, um einen **REST**-Server zu erstellen, der für **Vorhersagen** abgefragt werden kann. [für Ludwig]_“
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin und Sai Sumanth Miryala -<strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"target="_blank"><small>(Ref.)</small></a></div>
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, und Sai Sumanth Miryala –<strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"target="_blank"><small>(Ref)</small></a></div>
---
---
„_**Netflix** freut sich, die Open-Source-Veröffentlichung unseres Orchestrierungs-Frameworks für **Krisenmanagement** bekannt zu geben: **Dispatch**! [gebaut mit **FastAPI**]_“
„_**Netflix** freut sich, die Open-Source-Veröffentlichung unseres **Krisenmanagement**-Orchestrierung-Frameworks bekannt zu geben: **Dispatch**! [erstellt mit **FastAPI**]_“
<divstyle="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen -<strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"target="_blank"><small>(Ref.)</small></a></div>
<divstyle="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen –<strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"target="_blank"><small>(Ref)</small></a></div>
---
---
„_Ich bin hellauf begeistert von **FastAPI**. Es macht so viel Spaß!_“
„_Ich bin hellauf begeistert von **FastAPI**. Es macht so viel Spaß!_“
„_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._“
„_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._“
„_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 [...]_“
„_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 lernen [...]_“
„_Wir sind für unsere **APIs** auf **FastAPI** umgestiegen [...] Ich denke, es wird Ihnen gefallen [...]_“
„_Wir haben zu **FastAPI** für unsere **APIs** gewechselt [...] Ich denke, es wird Ihnen gefallen [...]_“
„_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._“
„_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** unserer API-First-Entwicklungsstrategie geworden und treibt viele Automatisierungen und Services an, wie etwa unseren Virtual TAC Engineer._“
Wenn Sie eine <abbrtitle="Command Line Interface – Kommandozeileninterface">CLI</abbr>-App bauen, die im Terminal statt als Web-API verwendet wird, sehen Sie sich <ahref="https://typer.tiangolo.com/"class="external-link"target="_blank">**Typer**</a> an.
Wenn Sie eine <abbrtitle="Command Line Interface – Kommandozeilen-Schnittstelle">CLI</abbr>-Anwendung für das Terminal erstellen, anstelle einer Web-API, schauen Sie sich <ahref="https://typer.tiangolo.com/"class="external-link"target="_blank">**Typer**</a> an.
**Typer** ist FastAPIs kleiner Bruder. Und es soll das **FastAPI der CLIs** sein. ⌨️ 🚀
**Typer** ist die kleine Schwester von FastAPI. Und es soll das **FastAPI der CLIs** sein. ⌨️ 🚀
## Voraussetzungen { #requirements }
## Anforderungen { #requirements }
FastAPI steht auf den Schultern von Giganten:
FastAPI steht auf den Schultern von Giganten:
* <ahref="https://www.starlette.io/"class="external-link"target="_blank">Starlette</a> für die Web-Teile.
* <ahref="https://www.starlette.io/"class="external-link"target="_blank">Starlette</a> für die Webanteile.
* <ahref="https://docs.pydantic.dev/"class="external-link"target="_blank">Pydantic</a> für die Daten-Teile.
* <ahref="https://docs.pydantic.dev/"class="external-link"target="_blank">Pydantic</a> für die Datenanteile.
Wenn Sie es nicht wissen, sehen Sie sich den Abschnitt „In Eile?“ über <ahref="https://fastapi.tiangolo.com/de/async/#in-a-hurry"target="_blank">`async` und `await` in der Dokumentation</a> an.
Wenn Sie das nicht kennen, schauen Sie sich den Abschnitt _„In Eile?“_ über <ahref="https://fastapi.tiangolo.com/de/async/#in-a-hurry"target="_blank">`async` und `await` in der Dokumentation</a> an.
<summary>Über den Befehl <code>fastapi dev main.py</code> ...</summary>
<summary>Was der Befehl <code>fastapi dev main.py</code> macht ...</summary>
Der Befehl `fastapi dev` liest Ihre Datei `main.py`, erkennt die **FastAPI**-App darin und startet einen Server mit <ahref="https://www.uvicorn.org"class="external-link"target="_blank">Uvicorn</a>.
Der Befehl `fastapi dev` liest Ihre `main.py`-Datei, erkennt die **FastAPI**-App darin und startet einen Server mit <ahref="https://www.uvicorn.org"class="external-link"target="_blank">Uvicorn</a>.
Standardmäßig startet`fastapi dev` mit aktiviertem Auto-Reload für lokale Entwicklung.
Standardmäßig wird`fastapi dev` mit aktiviertem Auto-Reload für die lokale Entwicklung gestartet.
Mehr dazu in der <ahref="https://fastapi.tiangolo.com/de/fastapi-cli/"target="_blank">FastAPI-CLI-Dokumentation</a>.
Sie können mehr darüber in der <ahref="https://fastapi.tiangolo.com/de/fastapi-cli/"target="_blank">FastAPI CLI Dokumentation</a> lesen.
</details>
</details>
### Prüfen { #check-it }
### Es testen { #check-it }
Öffnen Sie Ihren Browser unter <ahref="http://127.0.0.1:8000/items/5?q=somequery"class="external-link"target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
Öffnen Sie Ihren Browser unter <ahref="http://127.0.0.1:8000/items/5?q=somequery"class="external-link"target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
Sie sehen die JSON-Response:
Sie sehen die JSON-<abbrtitle="Response – Antwort: Daten, die der Server zum anfragenden Client zurücksendet">Response</abbr> als:
```JSON
```JSON
{"item_id": 5, "q": "somequery"}
{"item_id": 5, "q": "somequery"}
```
```
Sie haben bereits eine API erstellt, die:
Sie haben bereits eine API erstellt, welche:
* HTTP-Requests in den _Pfade(n)_`/` und `/items/{item_id}` empfängt.
* HTTP-<abbrtitle="Request – Anfrage: Daten, die der Client zum Server sendet">Requests</abbr> auf den _Pfaden_`/` und `/items/{item_id}` entgegennimmt.
* Beide _Pfade_ nehmen `GET`-<em>Operationen</em> (auch bekannt als HTTP-_Methoden_) an.
* Beide _Pfade_ nehmen `GET`<em>Operationen</em> (auch bekannt als HTTP-_Methoden_) entgegen.
* Der _Pfad_`/items/{item_id}` hat einen _Pfad-Parameter_`item_id`, der ein `int` sein sollte.
* 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`.
Gehen Sie jetzt zu<ahref="http://127.0.0.1:8000/docs"class="external-link"target="_blank">http://127.0.0.1:8000/docs</a>.
Gehen Sie nun auf<ahref="http://127.0.0.1:8000/docs"class="external-link"target="_blank">http://127.0.0.1:8000/docs</a>.
Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von <ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von <ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
@ -264,15 +264,15 @@ Sie sehen die automatische interaktive API-Dokumentation (bereitgestellt von <a
### Alternative API-Dokumentation { #alternative-api-docs }
### Alternative API-Dokumentation { #alternative-api-docs }
Und jetzt gehen Sie zu<ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
Und jetzt gehen Sie auf<ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
Sie sehen die alternative automatische Dokumentation (bereitgestellt von <ahref="https://github.com/Rebilly/ReDoc"class="external-link"target="_blank">ReDoc</a>):
Sie sehen die alternative automatische Dokumentation (bereitgestellt von <ahref="https://github.com/Rebilly/ReDoc"class="external-link"target="_blank">ReDoc</a>):
Ändern Sie nun die Datei `main.py`, um einen Body von einem `PUT`-Request zu empfangen.
Ändern Sie jetzt die Datei `main.py`, um den <abbrtitle="Body – Körper, Inhalt: Der eigentliche Inhalt einer Nachricht, nicht die Metadaten">Body</abbr> eines `PUT`-Requests zu empfangen.
Deklarieren Sie den Body mit Standard-Python-Typen, dank Pydantic.
Deklarieren Sie den Body mit Standard-Python-Typen, dank Pydantic.
@ -310,37 +310,37 @@ Der `fastapi dev`-Server sollte automatisch neu laden.
* 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:
* Klicken Sie dann auf den Button „Execute“, die Benutzeroberfläche wird mit Ihrer API kommunizieren, sendet die Parameter, holt die Ergebnisse und zeigt sie auf dem Bildschirm an:
Kurz gesagt, Sie deklarieren**einmal** die Typen von Parametern, Body, usw. als Funktionsparameter.
Zusammengefasst deklarieren Sie**einmal** die Typen von Parametern, Body, usw. als Funktionsparameter.
Sie tun das mit modernen Standard-Python-Typen.
Das machen Sie 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.
Einfach Standard-**Python**.
Nur Standard-**Python**.
Zum Beispiel für ein `int`:
Zum Beispiel für ein `int`:
@ -357,12 +357,12 @@ item: Item
... und mit dieser einen Deklaration erhalten Sie:
... und mit dieser einen Deklaration erhalten Sie:
* Editor-Unterstützung, einschließlich:
* Editor-Unterstützung, einschließlich:
* Completion.
* Code-Vervollständigung.
* Typprüfungen.
* Typprüfungen.
* Validierung von Daten:
* Validierung von Daten:
* Automatische und klare Fehler, wenn die Daten ungültig sind.
* Automatische und eindeutige Fehler, wenn die Daten ungültig sind.
* Validierung sogar für tief verschachtelte JSON-Objekte.
* Validierung sogar für tief verschachtelte JSON-Objekte.
* <abbrtitle="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</abbr> von Eingabedaten: vom Netzwerk zu Python-Daten und -Typen. Lesen aus:
* <abbrtitle="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</abbr> von Eingabedaten: Aus dem Netzwerk kommend, zu Python-Daten und -Typen. Lesen von:
* JSON.
* JSON.
* Pfad-Parametern.
* Pfad-Parametern.
* Query-Parametern.
* Query-Parametern.
@ -370,42 +370,42 @@ item: Item
* Headern.
* Headern.
* Formularen.
* Formularen.
* Dateien.
* Dateien.
* <abbrtitle="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</abbr> von Ausgabedaten: Umwandeln von Python-Daten und -Typen in Netzwerkdaten (als JSON):
* <abbrtitle="auch bekannt als: Serialisierung, Parsen, Marshalling">Konvertierung</abbr> von Ausgabedaten: Konvertierung von Python-Daten und -Typen zu Netzwerkdaten (als JSON):
Ein vollständigeres Beispiel mit mehr Features finden Sie im<ahref="https://fastapi.tiangolo.com/de/tutorial/">das Tutorial – Benutzerhandbuch</a>.
Für ein vollständigeres Beispiel, mit weiteren Funktionen, siehe das<ahref="https://fastapi.tiangolo.com/de/tutorial/">Tutorial – Benutzerhandbuch</a>.
**Spoilerwarnung**: das Tutorial – Benutzerhandbuch umfasst:
**Spoiler-Alarm**: Das Tutorial – Benutzerhandbuch enthält:
* Deklaration von **Parametern**aus verschiedenen Quellen wie: **Header**, **Cookies**, **Formularfelder** und **Dateien**.
* Deklaration von **Parametern**von anderen verschiedenen Stellen wie: **Header**, **Cookies**, **Formularfelder** und **Dateien**.
* Wie **Validierungs-Constraints** wie `maximum_length` oder `regex`gesetzt werden.
* Wie man **Validierungs-Constraints** wie `maximum_length` oder `regex` setzt.
* Ein sehr mächtiges und leicht zu nutzendes System für **<abbrtitle="auch bekannt als: Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</abbr>**.
* Ein sehr leistungsfähiges und einfach zu bedienendes System für **<abbrtitle="Dependency Injection – Einbringen von Abhängigkeiten: Auch bekannt als Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</abbr>**.
* Security und Authentifizierung, inklusive Support für **OAuth2** mit **JWT-Token** und **HTTP Basic**-Auth.
* Sicherheit und Authentifizierung, einschließlich Unterstützung für **OAuth2** mit **JWT-Tokens** und **HTTP Basic** Authentifizierung.
* Fortgeschrittene (aber ebenso einfache) Techniken für die Deklaration **tief verschachtelter JSON-Modelle** (dank Pydantic).
* Fortgeschrittenere (aber ebenso einfache) Techniken zur Deklaration **tief verschachtelter JSON-Modelle** (dank Pydantic).
* **GraphQL**-Integration mit <ahref="https://strawberry.rocks"class="external-link"target="_blank">Strawberry</a> und anderen Bibliotheken.
* **GraphQL**-Integration mit <ahref="https://strawberry.rocks"class="external-link"target="_blank">Strawberry</a> und anderen Bibliotheken.
* Viele zusätzliche Features (dank Starlette), wie:
* Viele zusätzliche Features (dank Starlette) wie:
* **WebSockets**
* **WebSockets**
* extrem einfache Tests auf Basis von HTTPX und `pytest`
* extrem einfache Tests auf Basis von HTTPX und `pytest`
* **CORS**
* **CORS**
@ -446,9 +446,9 @@ Ein vollständigeres Beispiel mit mehr Features finden Sie im <a href="https://f
## Performanz { #performance }
## Performanz { #performance }
Unabhängige TechEmpower-Benchmarks zeigen, dass**FastAPI**-Anwendungen unter Uvicorn als <ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank">eines der schnellsten verfügbaren Python-Frameworks</a> laufen, nur unterhalb von Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*)
Unabhängige TechEmpower-Benchmarks zeigen **FastAPI**-Anwendungen, die unter Uvicorn laufen, als <ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank">eines der schnellsten verfügbaren Python-Frameworks</a>, nur hinter Starlette und Uvicorn selbst (intern von FastAPI verwendet). (*)
Um mehr darüber zu verstehen, sehen Sie den Abschnitt <ahref="https://fastapi.tiangolo.com/de/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
Um mehr darüber zu erfahren, siehe den Abschnitt <ahref="https://fastapi.tiangolo.com/de/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
## Abhängigkeiten { #dependencies }
## Abhängigkeiten { #dependencies }
@ -464,19 +464,19 @@ Verwendet von Pydantic:
Verwendet von Starlette:
Verwendet von Starlette:
* <ahref="https://www.python-httpx.org"target="_blank"><code>httpx</code></a> – Erforderlich, wenn Sie den `TestClient` verwenden möchten.
* <ahref="https://www.python-httpx.org"target="_blank"><code>httpx</code></a> – erforderlich, wenn Sie den `TestClient` verwenden möchten.
* <ahref="https://jinja.palletsprojects.com"target="_blank"><code>jinja2</code></a> – Erforderlich, wenn Sie die Default-Template-Konfiguration verwenden möchten.
* <ahref="https://jinja.palletsprojects.com"target="_blank"><code>jinja2</code></a> – erforderlich, wenn Sie die Default-Template-Konfiguration verwenden möchten.
* <ahref="https://github.com/Kludex/python-multipart"target="_blank"><code>python-multipart</code></a> – Erforderlich, wenn Sie Formular-<abbrtitle="Konvertieren des Strings eines HTTP-Requests in Python-Daten">„parsing“</abbr> mit `request.form()` unterstützen möchten.
* <ahref="https://github.com/Kludex/python-multipart"target="_blank"><code>python-multipart</code></a> – erforderlich, wenn Sie Formulare mittels `request.form()`<abbrtitle="Konvertieren des Strings, der aus einem HTTP-Request stammt, nach Python-Daten">„parsen“</abbr> möchten.
Verwendet von FastAPI:
Verwendet von FastAPI:
* <ahref="https://www.uvicorn.org"target="_blank"><code>uvicorn</code></a> – 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.
* <ahref="https://www.uvicorn.org"target="_blank"><code>uvicorn</code></a> – 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.
* `fastapi-cli[standard]` – um den `fastapi`-Befehl bereitzustellen.
* Dies umfasst `fastapi-cloud-cli`, womit Sie Ihre FastAPI-Anwendung auf <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>deployen können.
* Dies beinhaltet `fastapi-cloud-cli`, das es Ihnen ermöglicht, Ihre FastAPI-Anwendung auf <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>bereitzustellen.
### Ohne `standard`-Abhängigkeiten { #without-standard-dependencies }
### Ohne `standard`-Abhängigkeiten { #without-standard-dependencies }
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.
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.
### Ohne `fastapi-cloud-cli` { #without-fastapi-cloud-cli }
### 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:
Zusätzliche optionale Pydantic-Abhängigkeiten:
* <ahref="https://docs.pydantic.dev/latest/usage/pydantic_settings/"target="_blank"><code>pydantic-settings</code></a> – für Settings-Management.
* <ahref="https://docs.pydantic.dev/latest/usage/pydantic_settings/"target="_blank"><code>pydantic-settings</code></a> – für die Verwaltung von Einstellungen.
* <ahref="https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/"target="_blank"><code>pydantic-extra-types</code></a> – für zusätzliche Typen zur Verwendung mit Pydantic.
* <ahref="https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/"target="_blank"><code>pydantic-extra-types</code></a> – für zusätzliche Typen zur Verwendung mit Pydantic.
Zusätzliche optionale FastAPI-Abhängigkeiten:
Zusätzliche optionale FastAPI-Abhängigkeiten:
* <ahref="https://github.com/ijl/orjson"target="_blank"><code>orjson</code></a> – Erforderlich, wenn Sie `ORJSONResponse` verwenden möchten.
* <ahref="https://github.com/ijl/orjson"target="_blank"><code>orjson</code></a> – erforderlich, wenn Sie `ORJSONResponse` verwenden möchten.
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> – Erforderlich, wenn Sie `UJSONResponse` verwenden möchten.
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> – erforderlich, wenn Sie `UJSONResponse` verwenden möchten.