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
O roteador baseado em arquivo, em resumo
src/routes/index.nexy/
src/routes/about.nexy/about
src/routes/blog/index.nexy/blog
src/routes/blog/[slug].nexy/blog/:slug
src/routes/(app)/dashboard.nexy/dashboard
src/routes/api/users.py/api/users(GET, POST, …)
O roteador modular, em resumo
@Controller() class AppController/
@Controller("/about") class AboutController/about/
@Controller("/api/users") class UserController/api/users/(get, post, …)
@Module() class AppModulelists the controllers
useRouter = 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

Editar no GitHub

Enter abre o resultado, Esc fecha.