دستاویزاتماڈیولر راؤٹر
ماڈیولر روٹنگ
ماڈیولر روٹنگ src/routes/ کے تحت فائلوں کے بجائے ڈیکوریٹرز کے ساتھ کلاسز کا استعمال کرتی ہے: کنٹرولرز درخواستوں کو ہینڈل کرتے ہیں، ماڈیولز ان کو گروپ کرتے ہیں، اور فراہم کنندگان کو انجکشن لگایا جاتا ہے۔ نتیجے میں APIRouter کو useRouter کے ساتھ nexyconfig.py میں ماؤنٹ کریں۔
شروع کرنے سے پہلے: ایک Nexy پروجیکٹ اور ایک ورکنگ پیج۔ ماڈیولر راؤٹر فائل پر مبنی روٹر کی جگہ لے لیتا ہے، لہذا اگر آپ نے ابھی تک روٹر کا انتخاب نہیں کیا ہے تو پہلے روٹنگ کو پڑھیں۔
| صفحہ | یہ کیا احاطہ کرتا ہے |
|---|---|
| یہ صفحہ | ایک ماڈیول ماؤنٹ کریں، کنٹرولر لکھیں، گروپ کنٹرولرز |
| انحصار انجکشن | @Injectable، اسکوپس، کنٹینر |
| گارڈز اور میٹا ڈیٹا | @UseGuard، @Middleware، @UseRoute، @UseResponse |
| Nexy اور NestJS | کیا میچ NestJS اور کیا نہیں؟ |
راؤٹر سیٹ اپ کریں۔
from nexy.core.models import NexyConfigModelfrom src.apps.app_module import AppModule class NexyConfig(NexyConfigModel): useRouter = AppModuleایک کنٹرولر لکھیں۔
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"}طریقے نام کے ساتھ مماثل ہیں، کیس غیر حساس: get، post، put، patch، delete، options، head، trace۔
ایک کنٹرولر ایک ہینڈلر فی HTTP طریقہ کا اعلان کرتا ہے۔ ایک ڈپلیکیٹ اسٹارٹ اپ پر اٹھتا ہے۔ @Controller("/users") کی پہلی دلیل وہ راستہ ہے جس پر ہر ہینڈلر جواب دیتا ہے، /users/۔ ایک کنٹرولر پر async def SOCKET(...) اسی راستے پر ایک WebSocket کو رجسٹر کرتا ہے۔
ایک ماڈیول میں گروپ کنٹرولرز
from nexy.decorators import Modulefrom .app_controller import AppController @Module()class AppModule: controllers = [AppController]@Module(prefix="/api") ایک APIRouter لوٹاتا ہے۔ controllers درکار ہے۔ providers، imports اور exports اختیاری ہیں۔ درآمد شدہ ماڈیولز کو سب روٹرز کے طور پر نصب کیا جاتا ہے، اور ان کے برآمد شدہ فراہم کنندگان کو آغاز پر حل کیا جاتا ہے۔
ایک کنٹرولر سے ملاحظات
ایک کنٹرولر ایک صفحہ واپس کر سکتا ہے۔ useViews ایک .nexy منظر پیش کرتا ہے۔ لے آؤٹ میں لپیٹنے کے لیے ایک دوسرے کے اندر گھونسلا:
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"), })دیکھیں لے آؤٹس۔
مثال
دیکھئے examples/Modular/api/minimal/۔
اگلے اقدامات
- انحصار انجیکشن: خدمات اور دائرہ کار
- گارڈز اور میٹا ڈیٹا: راستوں کی حفاظت اور دستاویز کریں۔
- روٹنگ: فائل پر مبنی روٹر
- ترتیب : ہر آپشن، بشمول
useRouter