0%
التوجيه (Routing)

التوجيه (Routing)

كيف تقسّم واجهة API لتبقى مقروءة بعد تجاوز ثلاثين مسارًا.

10-15 دقيقة

التوجيه (Routing)

واجهة API تُرجع 200 OK مع جسم { "erreur": "utilisateur introuvable" } تُفسد كل ما يستهلكها. فعميل HTTP لا يُفعّل مسار معالجة الأخطاء لديه، والذاكرة المؤقتة الوسيطة تحفظ الاستجابة، وأنظمة المراقبة تحتسب طلبًا ناجحًا، ولا يظهر العطل إلا عندما يقرأ إنسان شاشة فارغة. رمز الاستجابة ليس تفصيلًا شكليًا: إنه الجزء الوحيد من ردّك الذي تفهمه الوكلاء (proxies) والذاكرات المؤقتة والمتصفحات ومكتبات العملاء.

أما المشكلة الكلاسيكية الثانية في التوجيه فهي بنيوية. فإذا أُعلنت كل المسارات تباعًا في ملف واحد، انتهى بها الأمر إلى التداخل فيما بينها: يلتقط المسار /utilisateurs/:id المُعلَن في موضع أعلى الطلب الموجّه إلى /utilisateurs/moi، فتمضي ساعة كاملة تبحث فيها عن سبب وصول id === 'moi' إلى المعالج. يقيّم Express المسارات بحسب ترتيب الإعلان، دون أي اعتبار لمدى الخصوصية. يعالج هذا الدرس الموضوعين معًا، لأن التوجيه المقسَّم تقسيمًا جيدًا هو أيضًا توجيه يسهل التحكم في ترتيبه.

المعاملات والاستعلام والجسم

ثلاثة مصادر للمدخلات، وثلاثة استخدامات متمايزة.

// GET /api/v1/utilisateurs/42/commandes?statut=payee&page=2&taille=20
router.get('/:id/commandes', (req, res) => {
  const { id } = req.params;              // '42' — toujours une chaîne
  const { statut, page, taille } = req.query;
  // ...
});

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!