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

nexyconfig.py
from nexy.core.models import NexyConfigModelfrom src.apps.app_module import AppModule  class NexyConfig(NexyConfigModel):    useRouter = AppModule

Tulis pengontrol

src/apps/app_controller.py
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

src/apps/app_module.py
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:

src/apps/app_controller.py
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

Sunting di GitHub

Enter membuka hasil, Esc menutup.