ডকুমেন্টেশনমডুলার রাউটার

মডুলার রাউটিং

মডুলার রাউটিং src/routes/-এর অধীনে ফাইলগুলির পরিবর্তে ডেকোরেটর সহ ক্লাস ব্যবহার করে: কন্ট্রোলাররা অনুরোধগুলি পরিচালনা করে, মডিউলগুলি তাদের গোষ্ঠীভুক্ত করে এবং প্রদানকারীদের ইনজেকশন করা হয়। nexyconfig.py-এ useRouter সহ ফলাফল APIRouter মাউন্ট করুন।

আপনি শুরু করার আগে: একটি Nexy প্রকল্প এবং একটি কাজের পৃষ্ঠা। মডুলার রাউটারটি ফাইল-ভিত্তিক একটিকে প্রতিস্থাপন করে, তাই আপনি যদি এখনও রাউটার বেছে না থাকেন তবে প্রথমে রাউটিং পড়ুন।

পাতা এটা কভার কি
এই পাতা একটি মডিউল মাউন্ট করুন, একটি কন্ট্রোলার, গ্রুপ কন্ট্রোলার লিখুন
নির্ভরতা ইনজেকশন @Injectable, স্কোপ, ধারক
গার্ড এবং মেটাডেটা @UseGuard, @Middleware, @UseRoute, @UseResponse
নেক্সি এবং NestJS কি মেলে NestJS আর কি না

রাউটার সেট আপ করুন

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

একটি নিয়ামক লিখুন

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"}

পদ্ধতিগুলি নামের সাথে মিলে যায়, অক্ষর-সংবেদনশীলভাবে: get, post, put, patch, delete, options, head, trace।

একটি কন্ট্রোলার প্রতি HTTP পদ্ধতিতে একটি হ্যান্ডলার ঘোষণা করে; একটি ডুপ্লিকেট স্টার্টআপে উত্থাপিত হয়। @Controller("/users")-এর প্রথম যুক্তি হল যে পথটি প্রত্যেক হ্যান্ডলার উত্তর দেয়, /users/। একটি কন্ট্রোলারে async def SOCKET(...) একই পথে একটি WebSocket নিবন্ধন করে।

একটি মডিউলে গ্রুপ কন্ট্রোলার

src/apps/app_module.py
from nexy.decorators import Modulefrom .app_controller import AppController  @Module()class AppModule:    controllers = [AppController]

@Module(prefix="/api") একটি APIRouter প্রদান করে। controllers প্রয়োজন; providers, imports এবং exports ঐচ্ছিক। আমদানি করা মডিউলগুলি সাব-রাউটার হিসাবে মাউন্ট করা হয়, এবং তাদের রপ্তানি করা প্রদানকারীরা স্টার্টআপে সমাধান করা হয়।

একটি কন্ট্রোলার থেকে দেখা

একটি নিয়ামক একটি পৃষ্ঠা ফেরত দিতে পারে। useViews একটি .nexy ভিউ রেন্ডার করে; একটি লেআউটে এটি মোড়ানোর জন্য একে অপরের ভিতরে নেস্ট করুন:

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"),        })

লেআউটস দেখুন।

উদাহরণ

দেখুন examples/Modular/api/minimal/।

পরবর্তী পদক্ষেপ

GitHub-এ সম্পাদনা করুন

Enter ফলাফল খোলে, Esc বন্ধ করে।