المتحكّمات: التعامل مع الطلبات
المتحكّمات: التعامل مع الطلبات
المتحكّمات هي نقطة دخول الطلبات الواردة. مهمّتها محدودة ومهمّة: استقبال الطلب، وتفويض العمل إلى خدمة، وإرجاع استجابة. إبقاء المتحكّمات نحيلة — توجيه فقط، بلا منطق عمل — من أهم العادات في NestJS.
تعريف متحكّم
المتحكّم صنف مُزخرَف بـ @Controller(). النص الذي تمرّره يصبح بادئة المسار لكل دالّة بداخله:
هنا @Controller('users') + @Get() تُقابل GET /users.
مُزخرِفات طرق HTTP
لكل فعل HTTP مُزخرِف: @Get() و@Post() و@Put() و@Patch() و@Delete(). مرّر مقطع مسار لتمديد المسار:
قراءة معاملات المسار
تستخدم المقاطع الديناميكية صيغة :name في المسار والمُزخرِف @Param() لقراءتها:
42 تصل كنص '42'. تحويلها والتحقّق منها هو عمل الأنابيب (pipes)، وسنغطّيها لاحقًا في هذه الدورة.
معاملات الاستعلام وجسم الطلب
استخدم @Query() لسلسلة الاستعلام و@Body() لحمولة الطلب:
@Req()، لكنّ استخدام @Param() و@Query() و@Body() يُبقي معالجاتك مستقلّة عن الإطار، ومكتوبة الأنواع، وأسهل بكثير في الاختبار.
رموز الحالة والاستجابات
افتراضيًا يُعيد NestJS 200 (و201 لـ @Post()). تجاوزها بـ @HttpCode()، وأيّ شيء تُعيده يُسلسَل تلقائيًا إلى JSON:
الخلاصة
تربط المتحكّمات الطلبات بدوال المعالجة باستخدام @Controller() ومُزخرِفات أفعال HTTP، وتقرأ المدخلات بـ @Param() و@Query() و@Body(). القيم المُعادة تُسلسَل إلى JSON تلقائيًا. القاعدة الذهبية: المتحكّمات تُوجّه، والخدمات تعمل. تاليًا سنبني تلك الخدمات.