DocsEnrutador modular
Enrutamiento modular
El enrutamiento modular utiliza clases con decoradores en lugar de archivos en src/routes/: los controladores manejan las solicitudes, los módulos las agrupan y se inyectan los proveedores. Monte el APIRouter resultante con useRouter en nexyconfig.py.
Antes de comenzar: un proyecto Nexy y una página de trabajo. El enrutador modular reemplaza al basado en archivos, así que lea Enrutamiento primero si aún no ha elegido un enrutador.
| Página | lo que cubre |
|---|---|
| esta pagina | Montar un módulo, escribir un controlador, controladores de grupo |
| Inyección de dependencia | @Injectable, ámbitos, el contenedor |
| Guardias y metadatos | @UseGuard, @Middleware, @UseRoute, @UseResponse |
| Nexy y NestJS | Qué coincide con NestJS y qué no |
Configurar el enrutador
from nexy.core.models import NexyConfigModelfrom src.apps.app_module import AppModule class NexyConfig(NexyConfigModel): useRouter = AppModuleescribir un controlador
from nexy.decorators import Controllerfrom nexy.core.types import JsonResponse @Controller()class AppController: async def get(self) -> JsonResponse: return {"message": "Welcome to Nexy Modular API"}Los métodos se comparan por nombre, sin distinguir entre mayúsculas y minúsculas: get, post, put, patch, delete, options, head, trace.
Un controlador declara un controlador por método HTTP; un duplicado surge al inicio. El primer argumento de @Controller("/users") es la ruta por la que responde cada controlador, /users/. async def SOCKET(...) en un controlador registra un WebSocket en la misma ruta.
Controladores de grupo en un módulo
from nexy.decorators import Modulefrom .app_controller import AppController @Module()class AppModule: controllers = [AppController]@Module(prefix="/api") devuelve un APIRouter. controllers es obligatorio; providers, imports y exports son opcionales. Los módulos importados se montan como subrutadores y sus proveedores exportados se resuelven al inicio.
Vistas desde un controlador
Un controlador puede devolver una página. useViews representa una vista .nexy; anida uno dentro de otro para envolverlo en un diseño:
from nexy.decorators import Controllerfrom nexy.hooks import useViews @Controller()class AppController: async def get(self): return useViews("src/apps/layout.nexy", context={ "children": useViews("src/apps/app_view.nexy"), })Consulte Diseños.
Ejemplo
Véase examples/Modular/api/minimal/.
Próximos pasos
- Inyección de dependencia: servicios y alcances
- Guardias y metadatos: proteger y documentar rutas
- Enrutamiento: el enrutador basado en archivos
- Configuración: todas las opciones, incluida
useRouter