نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
AN

منهج Angular

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Angular /اعتراض الطلبات والاستجابات باستخدام الاعتراضات الوظيفية

اعتراض الطلبات والاستجابات باستخدام الاعتراضات الوظيفية

Global MiddlewareFunctional InterceptorsHttpInterceptorFnRequest Transformation

جدول مرجعي سريع

1
نمط الاعتراض (`Interceptor Pattern`)طريقة التعريف والبناءطريقة التسجيل في إعدادات التطبيق
الاعتراضات التقليدية (Class-based)بناء كلاس ينفذ واجهة `HttpInterceptor`عبر مصفوفة مزودات معقدة باستخدام `HTTP_INTERCEPTORS`
الاعتراضات الوظيفية الحديثة (Functional)دالة بسيطة من نوع `HttpInterceptorFn`عبر تمرير الدالة مباشرة داخل `withInterceptors([authInterceptor])`

الشرح

تم استبدال Classes الـ Interceptors القديمة بمعترضات وظيفية نظيفة ومباشرة تُعرف بـ HttpInterceptorFn. تتيح لك هذه الاعتراضات اعتراض أي طلب صادر أو استجابة واردة على مستوى التطبيق بالكامل، لتطبيق مهام مركزية مثل حقن رموز المصادقة (Tokens) أو مراقبة الأداء دون تكرار الشفرة البرمجية.

تفصيل فلسفة وعمل الاعتراضات الوظيفية

البرمجيات الوسيطة المركزية (Global Middleware):

تعمل الاعتراضات كحلقة وصل تمر من خلالها جميع طلبات التطبيق لتعديلها أو مراقبتها دون الحاجة لتكرار الشفرة في كل مكون منفصل.

سلاسة التمرير (Next Handler):

تعتمد الفكرة على استقبال الطلب (req) ومعالجته ثم تمريره للمرحلة التالية عبر استدعاء دالة next(req) بكل سهولة.

بناء وتكوين اعتراض وظيفي للمصادقة

ملف الاعتراض الوظيفي للمصادقة (auth.interceptor.ts)

typescript
1import { HttpInterceptorFn } from '@angular/common/http';
2
3export const authInterceptor: HttpInterceptorFn = (req, next) => {
4 // حقن رمز المصادقة تلقائياً في رأس كل طلب صادر للخادم
5 const authToken = 'secure-angular-22-token-xyz';
6
7 const clonedRequest = req.clone({
8 setHeaders: {
9 Authorization: `Bearer ${authToken}`
10 }
11 });
12
13 console.log('[Auth Interceptor] تم اعتراض الطلب وإضافة الترويسة الأمنية بنجاح:', req.url);
14
15 // تمرير الطلب المُعدل للمرحلة التالية في السلسلة
16 return next(clonedRequest);
17};

⚠️ تحذير

تذكر أن نسيان استدعاء next(req) أو النسخة المعدلة داخل الاعتراض سيؤدي إلى توقف الطلب وعدم وصوله للخادم نهائياً! يجب دائماً ضمان إعادة تدفق الطلب عبر دالة next لكي تستمر دورة الحياة الشبكية بصورة سليمّة.

طريقة تسجيله في app.config.ts:

typescript
1provideHttpClient(
2 withFetch(),
3 withInterceptors([authInterceptor])
4)

نصائح احترافية

  • —استخدم دائماً طريقة .clone() عند تعديل الطلب داخل الاعتراض الوظيفي!
  • —كائنات الطلب في أنجولر غير قابلة للتعديل المباشر، لذا فإن استنساخ الطلب وإجراء التعديلات على النسخة المستنسخة يضمن استقرار معمارية البيانات.

الدرس السابق

التعامل المتقدم مع رؤوس الطلبات وإعداد المعلمات

الدرس التالي

معالجة أخطاء الشبكة والاتصال مركزياً عبر Interceptors و CatchError

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر