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

diff --git a/docs/fr/docs/tutorial/frontend.md b/docs/fr/docs/tutorial/frontend.md
new file mode 100644 (file)
index 0000000..6adb8a2
--- /dev/null
@@ -0,0 +1,133 @@
+# Frontend { #frontend }
+
+Vous pouvez servir des applications frontend statiques avec `app.frontend()` (ou `router.frontend()`).
+
+C'est utile pour les outils frontend qui gĂ©nĂšrent des fichiers statiques, comme React avec Vite, TanStack Router, Astro, Vue, Svelte, Angular, Solid, et d'autres.
+
+Avec ces outils, vous avez normalement une Ă©tape qui build le frontend, avec une commande comme :
+
+```bash
+npm run build
+```
+
+Cela gĂ©nĂ©rerait un rĂ©pertoire comme `./dist/` avec vos fichiers frontend.
+
+Vous pouvez utiliser `app.frontend()` pour servir ce rĂ©pertoire en suivant les conventions nĂ©cessaires Ă  ces frameworks frontend.
+
+**FastAPI** vĂ©rifie d'abord les *chemins d'accĂšs*. Les fichiers frontend ne sont vĂ©rifiĂ©s que si aucune route normale ne correspond, donc votre API ne sera pas affectĂ©e.
+
+## Servir un frontend { #serve-a-frontend }
+
+AprĂšs avoir build votre frontend, par exemple avec `npm run build`, placez les fichiers gĂ©nĂ©rĂ©s dans un rĂ©pertoire, par exemple `dist`.
+
+La structure de votre projet pourrait ressembler Ă  ceci :
+
+```text
+.
+├── pyproject.toml
+├── app
+│   â”œâ”€â”€ __init__.py
+│   â””── main.py
+└── dist
+    â”œâ”€â”€ index.html
+    â””── assets
+        â””── app.js
+```
+
+Servez-le ensuite avec `app.frontend()` :
+
+{* ../../docs_src/frontend/tutorial001_py310.py hl[5] *}
+
+Avec cela, une requĂȘte vers `/assets/app.js` peut servir `dist/assets/app.js`.
+
+Si vous avez Ă©galement un *chemin d'accĂšs* **FastAPI**, le *chemin d'accĂšs* est prioritaire.
+
+## Routage cĂŽtĂ© client { #client-side-routing }
+
+De nombreuses applications frontend, y compris les **applications monopages** (SPAs), utilisent le routage cĂŽtĂ© client. Un chemin comme `/dashboard/settings` peut ne pas ĂȘtre un vrai fichier, mais le framework se chargerait de le gĂ©rer.
+
+Ainsi, si vous accĂ©dez directement Ă  cette URL (au lieu de naviguer via l'application), le backend doit servir l'application frontend depuis `index.html`, afin que le framework frontend puisse ensuite gĂ©rer le routage cĂŽtĂ© client.
+
+Pour cela, utilisez `fallback="index.html"` :
+
+{* ../../docs_src/frontend/tutorial002_py310.py hl[5] *}
+
+**FastAPI** utilise ce fallback uniquement pour les requĂȘtes `GET` et `HEAD` qui ressemblent Ă  une navigation de navigateur. Les fichiers manquants comme JavaScript, CSS et les images renvoient toujours `404`.
+
+Les requĂȘtes avec d'autres mĂ©thodes, comme `POST` ou `PUT`, vers des chemins qui ne correspondent qu'au fallback frontend renvoient Ă©galement `404`. Les *chemins d'accĂšs* **FastAPI** rĂ©guliers ont toujours une prioritĂ© plus Ă©levĂ©e que les routes frontend.
+
+/// tip | Astuce
+
+Par dĂ©faut, `fallback` a une valeur de `fallback="auto"`. Dans la plupart des cas, vous n'avez pas besoin de spĂ©cifier `fallback`. Lisez ci-dessous pour plus de dĂ©tails.
+
+///
+
+C'est ce que vous souhaitez avec de nombreuses applications frontend qui utilisent le routage cĂŽtĂ© client, par exemple React avec TanStack Router, Vue, Angular, SvelteKit ou Solid.
+
+## Page 404 personnalisĂ©e { #custom-404-page }
+
+Vous pouvez Ă©galement servir une page statique `404.html` pour les chemins frontend manquants :
+
+{* ../../docs_src/frontend/tutorial003_py310.py hl[5] *}
+
+Cette rĂ©ponse conserve un code de statut `404`.
+
+Dans ce cas, **FastAPI** ne servira pas `index.html` pour les chemins frontend manquants. Il renverra le fichier `404.html` Ă  la place.
+
+/// tip | Astuce
+
+Par dĂ©faut, `fallback` a une valeur de `fallback="auto"`. Avec cela, si un fichier `404.html` est trouvĂ©, il sera utilisĂ© automatiquement comme fallback.
+
+Vous pouvez donc normalement omettre l'argument `fallback`.
+
+///
+
+C'est utile avec les outils frontend qui gĂ©nĂšrent des fichiers HTML statiques pour chaque page, comme Astro.
+
+## Fallback automatique { #fallback-auto }
+
+Par dĂ©faut, `app.frontend()` utilise `fallback="auto"`.
+
+S'il y a un fichier `404.html` dans le rĂ©pertoire frontend, les chemins frontend manquants servent ce fichier avec le code de statut `404`.
+
+Sinon, s'il y a un fichier `index.html`, les chemins de navigation de navigateur manquants servent `index.html`, ce qui est attendu par de nombreuses applications frontend avec routage cĂŽtĂ© client.
+
+Ainsi, dans la plupart des cas, vous pouvez utiliser `app.frontend("/", directory="dist")` sans spĂ©cifier l'argument `fallback`.
+
+{* ../../docs_src/frontend/tutorial001_py310.py hl[5] *}
+
+## DĂ©sactiver le fallback { #disable-fallback }
+
+Si vous ne souhaitez pas servir de fichier fallback pour les chemins frontend manquants, utilisez `fallback=None` :
+
+{* ../../docs_src/frontend/tutorial005_py310.py hl[5] *}
+
+Les chemins frontend manquants renvoient alors le `404` normal.
+
+## VĂ©rifier le rĂ©pertoire { #check-directory }
+
+Par dĂ©faut, `app.frontend()` vĂ©rifie que le rĂ©pertoire existe lorsque l'application est créée.
+
+Cela permet de dĂ©tecter tĂŽt les erreurs de configuration. Par exemple, si le rĂ©pertoire de sortie du build frontend est manquant, **FastAPI** lĂšvera une erreur au dĂ©marrage.
+
+Si vos fichiers frontend sont créés plus tard, par exemple par une Ă©tape de build sĂ©parĂ©e aprĂšs la crĂ©ation de l'objet app, dĂ©finissez `check_dir=False` :
+
+{* ../../docs_src/frontend/tutorial006_py310.py hl[5] *}
+
+Avec `check_dir=False`, **FastAPI** ne vĂ©rifiera pas le rĂ©pertoire lorsque l'application est créée. Si le rĂ©pertoire configurĂ© est toujours manquant lorsqu'une requĂȘte est traitĂ©e, **FastAPI** lĂšvera alors une erreur.
+
+## L'utiliser avec `APIRouter` { #use-it-with-apirouter }
+
+Vous pouvez Ă©galement ajouter des fichiers frontend Ă  un `APIRouter` et l'inclure avec un prĂ©fixe :
+
+{* ../../docs_src/frontend/tutorial004_py310.py hl[6,7] *}
+
+Dans cet exemple, les chemins frontend sont servis sous `/app`.
+
+Tous les *chemins d'accĂšs* rĂ©guliers dans l'application seront toujours prioritaires, y compris dans d'autres routers.
+
+## Sortie de build statique uniquement { #static-build-output-only }
+
+`app.frontend()` sert des fichiers dĂ©jĂ  gĂ©nĂ©rĂ©s par votre build frontend.
+
+Il n'exĂ©cute pas de rendu cĂŽtĂ© serveur. Il est destinĂ© aux frameworks frontend qui gĂ©nĂšrent des fichiers statiques, pas aux frameworks qui nĂ©cessitent un rendu dynamique sur le serveur pour chaque requĂȘte.