DocsComprendre le modèle
Routage
Nexy dispose de deux routeurs natifs. Vous pouvez en choisir un par fonctionnalité ; ils peuvent coexister dans la même application.
Pas sûr? Utilisez le routage basé sur des fichiers. Il couvre les pages et les points de terminaison de l'API sans configuration. Ajoutez le routeur modulaire lorsqu'un backend a besoin de contrôleurs, de services injectés ou de gardes.
| Vous construisez | Utiliser |
|---|---|
| Des pages, du contenu, un site avec quelques points de terminaison | Basé sur un fichier |
| Une grande API avec des services partagés entre les itinéraires | Modulaire |
| Les deux : des pages pour les personnes, une API structurée pour les machines | Basé sur des fichiers et modulaire ensemble |
src/routes/index.nexy/src/routes/about.nexy/aboutsrc/routes/blog/index.nexy/blogsrc/routes/blog/[slug].nexy/blog/:slugsrc/routes/(app)/dashboard.nexy/dashboardsrc/routes/api/users.py/api/users(GET, POST, …)/@Controller("/about") class AboutController/about/@Controller("/api/users") class UserController/api/users/(get, post, …)lists the controllersuseRouter = AppModule nexyconfig.pymounts the module| Routeur | Source | Activé par |
|---|---|---|
| Basé sur un fichier (FBR) | chaque fichier sous src/routes/ |
le répertoire existe |
| Modulaire | contrôleurs et modules | useRouter = AppModule dans nexyconfig.py |
FBR est analysé chaque fois que src/routes/ existe, même avec un routeur modulaire monté.
Coexistence et priorités
Vous pouvez combiner une intégration FBR, modulaire et personnalisée. Nexy enregistre ces routes dans l'ordre de leur découverte. Si deux routeurs définissent le même chemin URL, le premier enregistré gagne.
Remarque : Nexy ne fournit actuellement pas de diagnostic pour les collisions d'URL ; le premier itinéraire pour revendiquer un chemin fait simplement de l'ombre aux autres.
Routage basé sur des fichiers
Un itinéraire est un fichier. L'URL est son chemin sous src/routes/, moins l'extension. Comme Next.js, un projet est dans l'un des deux modes, choisis avec useCSR :
useCSR = False (par défaut) |
useCSR = True |
|
|---|---|---|
| Pages | .nexy, .md, .mdx |
fichiers de votre framework client |
| Disposition racine | layout.nexy |
layout.tsx (React) |
| Composants clients | autorisé, sous forme d'îlots à l'intérieur des pages | les pages elles-mêmes |
| Itinéraires API | .py |
.py |
Voir Mode serveur et mode client.
| Section | Ce qu'il couvre |
|---|---|
| fbr/pages | pages, itinéraires dynamiques et groupes de itinéraires |
| fbr/layouts | layout.nexy, layout.tsx, layout.vue, layout.svelte |
| fbr/gestionnaires | .py gestionnaires de routes, validation et erreurs |
| fbr/dépendances | dependencies.py et gardes, hérités par répertoire |
| fbr/middleware | middleware.py, hérité par répertoire |
| fbr/erreurs | notfound.nexy, errors.nexy, erreurs JSON |
| fbr/navigation | liaison, navigation client, hooks |
| fbr/temps réel | WebSocket gestionnaires |
| fbr/héritage | comment les mises en page, les dépendances et les pages d'erreur héritent |
Routage modulaire
Contrôleurs, modules et injection de dépendances, à la manière de NestJS. Voir Routage modulaire et Nexy et NestJS.
| Section | Ce qu'il couvre |
|---|---|
| modulaire | @Controller, @Module, importations et exportations |
| modulaire/injection de dépendances | @Injectable, les scopes et le conteneur |
| modulaire/gardes-et-métadonnées | @UseGuard, @UseResponse et les métadonnées OpenAPI |
Un contrôleur renvoie une vue .nexy avec useViews et la transmet manuellement à sa disposition : il n'y a pas de layout.nexy appliqué par dossier.
Intégration personnalisée
Vous pouvez également intégrer un routeur FastAPI existant dans votre projet Nexy. Voir Intégration du routage personnalisé.