DocsEntenda o modelo
Roteamento
Nexy possui dois roteadores nativos. Você pode escolher um por recurso; eles podem coexistir no mesmo aplicativo.
Não tenho certeza? Use roteamento baseado em arquivo. Abrange páginas e endpoints de API sem configuração. Adicione o roteador modular quando um back-end precisar de controladores, serviços injetados ou protetores.
| Você está construindo | Usar |
|---|---|
| Páginas, conteúdo, um site com alguns endpoints | Baseado em arquivo |
| Uma grande API com serviços compartilhados entre rotas | Modular |
| Ambos: páginas para pessoas, uma API estruturada para máquinas | Baseado em arquivo e modular juntos |
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| Roteador | Fonte | Ativado por |
|---|---|---|
| Baseado em arquivo (FBR) | cada arquivo em src/routes/ |
o diretório existe |
| Modular | controladores e módulos | useRouter = AppModule em nexyconfig.py |
FBR é verificado sempre src/routes/ existe, mesmo com um roteador modular montado.
Coexistência e prioridades
Você pode combinar integração FBR, modular e personalizada. Nexy registra essas rotas na ordem em que são descobertas. Se dois roteadores definirem o mesmo caminho de URL, o primeiro registrado vence.
Observação: Nexy atualmente não fornece diagnóstico para colisões de URL; a primeira rota para reivindicar um caminho simplesmente obscurece as outras.
Roteamento baseado em arquivo
Uma rota é um arquivo. A URL é o caminho em src/routes/, menos a extensão. Assim como Next.js, um projeto está em um dos dois modos, escolhidos com useCSR:
useCSR = False (padrão) |
useCSR = True |
|
|---|---|---|
| Páginas | .nexy, .md, .mdx |
arquivos da sua estrutura de cliente |
| Layout raiz | layout.nexy |
layout.tsx (React) |
| Componentes do cliente | permitido, como ilhas dentro das páginas | as próprias páginas |
| Rotas de API | .py |
.py |
Consulte Modo servidor e modo cliente.
| Seção | O que cobre |
|---|---|
| fbr/páginas | páginas, rotas dinâmicas e grupos de rotas |
| fbr/layouts | layout.nexy, layout.tsx, layout.vue, layout.svelte |
| fbr/manipuladores | .py manipuladores de rota, validação e erros |
| fbr/dependências | dependencies.py e guardas, herdados por diretório |
| fbr/middleware | middleware.py, herdado por diretório |
| fbr/erros | notfound.nexy, errors.nexy, erros JSON |
| fbr/navegação | vinculação, navegação do cliente, ganchos |
| fbr/tempo real | WebSocket manipuladores |
| fbr/herança | como layouts, dependências e páginas de erro herdam |
Roteamento modular
Controladores, módulos e injeção de dependência, no estilo de NestJS. Consulte Roteamento modular e Nexy e NestJS.
| Seção | O que cobre |
|---|---|
| modular | @Controller, @Module, importações e exportações |
| modular/injeção de dependência | @Injectable, escopos e o contêiner |
| modular/guardas e metadados | @UseGuard, @UseResponse e os OpenAPI metadados |
Um controlador retorna uma visualização .nexy com useViews e a passa para seu layout manualmente: não há layout.nexy aplicado por pasta.
Integração Personalizada
Você também pode integrar um roteador FastAPI existente em seu projeto Nexy. Consulte Integração de roteamento personalizado.
Próximas etapas
- Renderização
- Visualizações: o que há dentro dos arquivos