]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Update translations for de (add-missing) (#15884)
authorSebastiĂĄn RamĂ­rez <tiangolo@gmail.com>
Wed, 1 Jul 2026 10:32:25 +0000 (12:32 +0200)
committerGitHub <noreply@github.com>
Wed, 1 Jul 2026 10:32:25 +0000 (10:32 +0000)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
docs/de/docs/tutorial/frontend.md [new file with mode: 0644]

diff --git a/docs/de/docs/tutorial/frontend.md b/docs/de/docs/tutorial/frontend.md
new file mode 100644 (file)
index 0000000..9cd4644
--- /dev/null
@@ -0,0 +1,133 @@
+# Frontend { #frontend }
+
+Sie können statische Frontend-Apps mit `app.frontend()` (oder `router.frontend()`) bereitstellen.
+
+Das ist nĂŒtzlich fĂŒr Frontend-Tools, die statische Dateien generieren, wie React mit Vite, TanStack Router, Astro, Vue, Svelte, Angular, Solid und andere.
+
+Mit diesen Tools haben Sie normalerweise einen Schritt, der das Frontend baut, mit einem Befehl wie:
+
+```bash
+npm run build
+```
+
+Das wĂŒrde ein Verzeichnis wie `./dist/` mit Ihren Frontend-Dateien generieren.
+
+Sie können `app.frontend()` verwenden, um dieses Verzeichnis gemĂ€ĂŸ den Konventionen bereitzustellen, die von diesen Frontend-Frameworks benötigt werden.
+
+**FastAPI** prĂŒft zuerst *Pfadoperationen*. Die Frontend-Dateien werden nur geprĂŒft, wenn keine normale Route gepasst hat, sodass Ihre API nicht beeintrĂ€chtigt wird.
+
+## Ein Frontend bereitstellen { #serve-a-frontend }
+
+Nachdem Sie Ihr Frontend gebaut haben, zum Beispiel mit `npm run build`, legen Sie die generierten Dateien in ein Verzeichnis, zum Beispiel `dist`.
+
+Ihre Projektstruktur könnte so aussehen:
+
+```text
+.
+├── pyproject.toml
+├── app
+│   â”œâ”€â”€ __init__.py
+│   â””── main.py
+└── dist
+    â”œâ”€â”€ index.html
+    â””── assets
+        â””── app.js
+```
+
+Stellen Sie es dann mit `app.frontend()` bereit:
+
+{* ../../docs_src/frontend/tutorial001_py310.py hl[5] *}
+
+Damit kann ein Request fĂŒr `/assets/app.js` `dist/assets/app.js` ausliefern.
+
+Wenn Sie außerdem eine **FastAPI**-*Pfadoperation* haben, gewinnt die *Pfadoperation*.
+
+## Clientseitiges Routing { #client-side-routing }
+
+Viele Frontend-Apps, einschließlich **Single-Page-Apps** (SPAs), verwenden clientseitiges Routing. Ein Pfad wie `/dashboard/settings` ist möglicherweise keine echte Datei, aber das Framework wĂŒrde sich darum kĂŒmmern, ihn zu handhaben.
+
+Wenn also direkt auf diese URL zugegriffen wird (statt durch die App zu navigieren), sollte das Backend die Frontend-App von `index.html` bereitstellen, sodass das Frontend-Framework anschließend das clientseitige Routing handhaben kann.
+
+Verwenden Sie dafĂŒr `fallback="index.html"`:
+
+{* ../../docs_src/frontend/tutorial002_py310.py hl[5] *}
+
+**FastAPI** verwendet diesen Fallback nur fĂŒr `GET`- und `HEAD`-Requests, die wie Browser-Navigation aussehen. Fehlende Dateien wie JavaScript, CSS und Bilder geben weiterhin `404` zurĂŒck.
+
+Requests mit anderen Methoden, wie `POST` oder `PUT`, an Pfade, die nur zum Frontend-Fallback passen, geben ebenfalls `404` zurĂŒck. RegulĂ€re **FastAPI**-*Pfadoperationen* haben weiterhin eine höhere PrioritĂ€t als Frontend-Routen.
+
+/// tip | Tipp
+
+StandardmĂ€ĂŸig hat `fallback` einen Wert von `fallback="auto"`. In den meisten FĂ€llen mĂŒssen Sie `fallback` nicht angeben. Lesen Sie weiter unten die Details.
+
+///
+
+Das ist das, was Sie bei vielen Frontend-Apps möchten, die clientseitiges Routing verwenden, zum Beispiel React mit TanStack Router, Vue, Angular, SvelteKit oder Solid.
+
+## Benutzerdefinierte 404-Seite { #custom-404-page }
+
+Sie können auch eine statische `404.html`-Seite fĂŒr fehlende Frontend-Pfade ausliefern:
+
+{* ../../docs_src/frontend/tutorial003_py310.py hl[5] *}
+
+Diese Response behĂ€lt einen Statuscode von `404`.
+
+In diesem Fall liefert **FastAPI** fĂŒr fehlende Frontend-Pfade nicht `index.html` aus. Stattdessen wird die Datei `404.html` zurĂŒckgegeben.
+
+/// tip | Tipp
+
+StandardmĂ€ĂŸig hat `fallback` einen Wert von `fallback="auto"`. Damit wird, wenn eine `404.html`-Datei gefunden wird, diese automatisch als Fallback verwendet.
+
+Sie können das `fallback`-Argument also normalerweise weglassen.
+
+///
+
+Das ist nĂŒtzlich bei Frontend-Tools, die fĂŒr jede Seite statische HTML-Dateien generieren, wie Astro.
+
+## Automatischer Fallback { #fallback-auto }
+
+StandardmĂ€ĂŸig verwendet `app.frontend()` `fallback="auto"`.
+
+Wenn es im Frontend-Verzeichnis eine `404.html`-Datei gibt, liefern fehlende Frontend-Pfade diese Datei mit dem Statuscode `404` aus.
+
+Andernfalls, wenn es eine `index.html`-Datei gibt, liefern fehlende Browser-Navigationspfade `index.html` aus, was viele Frontend-Apps mit clientseitigem Routing erwarten.
+
+In den meisten FĂ€llen können Sie also `app.frontend("/", directory="dist")` verwenden, ohne das `fallback`-Argument anzugeben.
+
+{* ../../docs_src/frontend/tutorial001_py310.py hl[5] *}
+
+## Fallback deaktivieren { #disable-fallback }
+
+Wenn Sie keine Fallback-Datei fĂŒr fehlende Frontend-Pfade ausliefern möchten, verwenden Sie `fallback=None`:
+
+{* ../../docs_src/frontend/tutorial005_py310.py hl[5] *}
+
+Dann geben fehlende Frontend-Pfade das normale `404` zurĂŒck.
+
+## Verzeichnis prĂŒfen { #check-directory }
+
+StandardmĂ€ĂŸig prĂŒft `app.frontend()`, dass das Verzeichnis existiert, wenn die App erstellt wird.
+
+Das hilft, Konfigurationsfehler frĂŒh zu erkennen. Wenn zum Beispiel das Output-Verzeichnis des Frontend-Builds fehlt, löst **FastAPI** beim Startup einen Fehler aus.
+
+Wenn Ihre Frontend-Dateien spĂ€ter erstellt werden, zum Beispiel durch einen separaten Build-Schritt, nachdem das App-Objekt erstellt wurde, setzen Sie `check_dir=False`:
+
+{* ../../docs_src/frontend/tutorial006_py310.py hl[5] *}
+
+Mit `check_dir=False` prĂŒft **FastAPI** das Verzeichnis nicht, wenn die App erstellt wird. Wenn das konfigurierte Verzeichnis beim Verarbeiten eines Requests immer noch fehlt, löst **FastAPI** dann einen Fehler aus.
+
+## Mit `APIRouter` verwenden { #use-it-with-apirouter }
+
+Sie können Frontend-Dateien auch zu einem `APIRouter` hinzufĂŒgen und ihn mit einem PrĂ€fix einbinden:
+
+{* ../../docs_src/frontend/tutorial004_py310.py hl[6,7] *}
+
+In diesem Beispiel werden Frontend-Pfade unter `/app` bereitgestellt.
+
+Alle regulĂ€ren *Pfadoperationen* in der App haben weiterhin Vorrang, auch in anderen Routern.
+
+## Nur statischer Build-Output { #static-build-output-only }
+
+`app.frontend()` liefert Dateien aus, die bereits von Ihrem Frontend-Build generiert wurden.
+
+Es fĂŒhrt kein serverseitiges Rendering aus. Es ist fĂŒr Frontend-Frameworks gedacht, die statische Dateien generieren, nicht fĂŒr Frameworks, die dynamisches Rendering auf dem Server fĂŒr jeden Request benötigen.