DokumentasiRouter modular
Perutean modular
Perutean modular menggunakan kelas dengan dekorator alih-alih file di bawah src/routes/: pengontrol menangani permintaan, modul mengelompokkannya, dan penyedia dimasukkan. Pasang APIRouter yang dihasilkan dengan useRouter di nexyconfig.py.
Sebelum Anda memulai: proyek Nexy dan satu halaman kerja. Router modular menggantikan router berbasis file, jadi bacalah Perutean terlebih dahulu jika Anda belum memilih router.
| Halaman | Apa yang dicakupnya |
|---|---|
| Halaman ini | Pasang modul, tulis pengontrol, pengontrol grup |
| Injeksi ketergantungan | @Injectable, cakupan, wadah |
| Penjaga dan metadata | @UseGuard, @Middleware, @UseRoute, @UseResponse |
| Nexy dan NestJS | Mana yang cocok dengan NestJS dan mana yang tidak |
Siapkan perute
from nexy.core.models import NexyConfigModelfrom src.apps.app_module import AppModule class NexyConfig(NexyConfigModel): useRouter = AppModuleTulis pengontrol
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"}Metode dicocokkan berdasarkan nama, tidak membedakan huruf besar/kecil: get, post, put, patch, delete, options, head, trace.
Sebuah pengontrol mendeklarasikan satu penangan per metode HTTP; duplikat meningkat saat startup. Argumen pertama dari @Controller("/users") adalah jalur yang dijawab oleh setiap penangan, /users/. async def SOCKET(...) pada pengontrol mendaftarkan WebSocket di jalur yang sama.
Pengontrol grup dalam sebuah modul
from nexy.decorators import Modulefrom .app_controller import AppController @Module()class AppModule: controllers = [AppController]@Module(prefix="/api") mengembalikan APIRouter. controllers diperlukan; providers, imports dan exports bersifat opsional. Modul yang diimpor dipasang sebagai sub-router, dan penyedia yang diekspor diselesaikan saat startup.
Tampilan dari pengontrol
Pengontrol dapat mengembalikan halaman. useViews menampilkan tampilan .nexy; sarangkan satu di dalam yang lain untuk membungkusnya dalam tata letak:
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"), })Lihat Tata Letak.
Contoh
Lihat examples/Modular/api/minimal/.
Langkah selanjutnya
- Injeksi ketergantungan: layanan dan cakupan
- Penjaga dan metadata: melindungi dan mendokumentasikan rute
- Perutean: router berbasis file
- Konfigurasi: setiap opsi, termasuk
useRouter