### *Pfadoperationen* mit `APIRouter` { #path-operations-with-apirouter }
Und dann verwenden Sie ihn, um Ihre *Pfadoperationen* zu deklarieren.
@ -113,7 +113,7 @@ In diesem Beispiel heißt die Variable `router`, aber Sie können ihr einen beli
Wir werden diesen `APIRouter` in die Hauptanwendung `FastAPI` einbinden, aber zuerst kümmern wir uns um die Abhängigkeiten und einen anderen `APIRouter`.
## Abhängigkeiten
## Abhängigkeiten { #dependencies }
Wir sehen, dass wir einige Abhängigkeiten benötigen, die an mehreren Stellen der Anwendung verwendet werden.
@ -159,7 +159,7 @@ Aber in der Praxis werden Sie mit den integrierten [Sicherheits-Werkzeugen](secu
///
## Ein weiteres Modul mit `APIRouter`.
## Ein weiteres Modul mit `APIRouter`. { #another-module-with-apirouter }
Nehmen wir an, Sie haben im Modul unter `app/routers/items.py` auch die Endpunkte, die für die Verarbeitung von Artikeln („Items“) aus Ihrer Anwendung vorgesehen sind.
@ -228,13 +228,13 @@ Das Endergebnis ist, dass die Pfade für diese Artikel jetzt wie folgt lauten:
///
/// check
/// check | Testen
Die Parameter `prefix`, `tags`, `responses` und `dependencies` sind (wie in vielen anderen Fällen) nur ein Feature von **FastAPI**, um Ihnen dabei zu helfen, Codeverdoppelung zu vermeiden.
///
### Die Abhängigkeiten importieren
### Die Abhängigkeiten importieren { #import-the-dependencies }
Der folgende Code befindet sich im Modul `app.routers.items`, also in der Datei `app/routers/items.py`.
@ -246,7 +246,7 @@ Daher verwenden wir einen relativen Import mit `..` für die Abhängigkeiten:
### Den `APIRouter` importieren { #import-the-apirouter }
Jetzt importieren wir die anderen Submodule, die `APIRouter` haben:
@ -357,7 +357,7 @@ Jetzt importieren wir die anderen Submodule, die `APIRouter` haben:
Da es sich bei den Dateien `app/routers/users.py` und `app/routers/items.py` um Submodule handelt, die Teil desselben Python-Packages `app` sind, können wir einen einzelnen Punkt `.` verwenden, um sie mit „relativen Imports“ zu importieren.
### Wie das Importieren funktioniert
### Wie das Importieren funktioniert { #how-the-importing-works }
Die Sektion:
@ -381,7 +381,7 @@ Wir könnten sie auch wie folgt importieren:
from app.routers import items, users
```
/// info
/// info | Info
Die erste Version ist ein „relativer Import“:
@ -399,7 +399,7 @@ Um mehr über Python-Packages und -Module zu erfahren, lesen Sie <a href="https:
`users.router` enthält den `APIRouter` in der Datei `app/routers/users.py`.
@ -449,7 +448,7 @@ Hinter den Kulissen wird es also tatsächlich so funktionieren, als ob alles die
///
/// check
/// check | Testen
Bei der Einbindung von Routern müssen Sie sich keine Gedanken über die Performanz machen.
@ -459,7 +458,7 @@ Es hat also keinen Einfluss auf die Leistung. ⚡
///
### Einen `APIRouter` mit benutzerdefinierten `prefix`, `tags`, `responses` und `dependencies` einfügen
### Einen `APIRouter` mit benutzerdefinierten `prefix`, `tags`, `responses` und `dependencies` einfügen { #include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies }
Stellen wir uns nun vor, dass Ihre Organisation Ihnen die Datei `app/internal/admin.py` gegeben hat.
@ -492,7 +491,7 @@ Dies wirkt sich jedoch nur auf diesen `APIRouter` in unserer Anwendung aus, nich
So könnten beispielsweise andere Projekte denselben `APIRouter` mit einer anderen Authentifizierungsmethode verwenden.
### Eine *Pfadoperation* hinzufügen
### Eine *Pfadoperation* hinzufügen { #include-a-path-operation }
Wir können *Pfadoperationen* auch direkt zur `FastAPI`-App hinzufügen.
@ -518,14 +517,14 @@ Da wir sie nicht einfach isolieren und unabhängig vom Rest „mounten“ könne
///
## Es in der automatischen API-Dokumentation ansehen
## Es in der automatischen API-Dokumentation ansehen { #check-the-automatic-api-docs }
Führen Sie nun `uvicorn` aus, indem Sie das Modul `app.main` und die Variable `app` verwenden:
Führen Sie nun Ihre App aus:
<divclass="termy">
```console
$ uvicorn app.main:app --reload
$ fastapi dev app/main.py
<spanstyle="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
```
@ -538,7 +537,7 @@ Sie sehen die automatische API-Dokumentation, einschließlich der Pfade aller Su
## Den gleichen Router mehrmals mit unterschiedlichem `prefix` inkludieren
## Den gleichen Router mehrmals mit unterschiedlichem `prefix` inkludieren { #include-the-same-router-multiple-times-with-different-prefix }
Sie können `.include_router()` auch mehrmals mit *demselben* Router und unterschiedlichen Präfixen verwenden.
@ -546,7 +545,7 @@ Dies könnte beispielsweise nützlich sein, um dieselbe API unter verschiedenen
Dies ist eine fortgeschrittene Verwendung, die Sie möglicherweise nicht wirklich benötigen, aber für den Fall, dass Sie sie benötigen, ist sie vorhanden.
## Einen `APIRouter` in einen anderen einfügen
## Einen `APIRouter` in einen anderen einfügen { #include-an-apirouter-in-another }
Auf die gleiche Weise, wie Sie einen `APIRouter` in eine `FastAPI`-Anwendung einbinden können, können Sie einen `APIRouter` in einen anderen `APIRouter` einbinden, indem Sie Folgendes verwenden: