文档了解模型
路由
Nexy 有两个本地路由器。您可以为每个功能选择一个;它们可以共存于同一应用程序中。
没有把握?使用基于文件的路由。 它涵盖了无需设置的页面和 API 端点。当后端需要控制器、注入服务或防护时添加模块化路由器。
| 你正在建造 | 使用 |
|---|---|
| 页面、内容、具有几个端点的站点 | 基于文件 |
| 具有跨路由共享服务的大型 API | 模块化 |
| 两者:为人服务的页面,为机器服务的结构化 API | 基于文件和模块化相结合 |
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() class AppController
/@Controller("/about") class AboutController/about/@Controller("/api/users") class UserController/api/users/(get, post, …)@Module() class AppModule
lists the controllersuseRouter = AppModule nexyconfig.pymounts the module| 路由器 | 来源 | 启用者 |
|---|---|---|
| 基于文件 (FBR) | src/routes/ 下的每个文件 |
该目录存在 |
| 模块化 | 控制器和模块 | useRouter = AppModule 在 nexyconfig.py |
只要 src/routes/ 存在,即使安装了模块化路由器,FBR 也会被扫描。
共存和优先事项
您可以结合 FBR、模块化和自定义集成。 Nexy 按照发现的顺序注册这些路由。如果两个路由器定义相同的 URL 路径,则第一个注册的路由器获胜。
注意:Nexy 目前不提供 URL 冲突诊断;第一条声明路径的路线只会遮蔽其他路线。
基于文件的路由
路线是一个文件。 URL 是 src/routes/ 下的路径,减去扩展名。与 Next.js 一样,项目处于两种模式之一,通过 useCSR 选择:
useCSR = False(默认) |
useCSR = True |
|
|---|---|---|
| 页数 | .nexy,.md,.mdx |
您的客户端框架的文件 |
| 根布局 | layout.nexy |
layout.tsx(React) |
| 客户端组件 | 允许,作为页面内的岛屿 | 页面本身 |
| API路线 | .py |
.py |
请参阅服务器模式和客户端模式。
模块化路由
控制器、模块和依赖注入,采用 NestJS 的风格。请参阅模块化路由 和Nexy 和 NestJS。
| 部分 | 它涵盖什么 |
|---|---|
| 模块化 | @Controller、@Module、进出口 |
| 模块化/依赖注入 | @Injectable,范围和容器 |
| 模块化/防护和元数据 | @UseGuard、@UseResponse 和 OpenAPI 元数据 |
控制器返回带有 useViews 的 .nexy 视图,并手动将其传递到其布局:文件夹没有应用 layout.nexy。
定制集成
您还可以将现有的 FastAPI 路由器集成到您的 Nexy 项目中。请参阅自定义路由集成。