تخطَّ إلى المحتوى

🔌 شرح REST APIs

تحديد المعدّل والتخزين المؤقّت

الدرس 22 من 25· ⏱ 1 دقائق قراءة

تحديد المعدّل (Rate Limiting)

يحدّ عدد الطلبات لكل مستخدم لمنع الإساءة وهجمات الحرمان:

npm install express-rate-limit
import rateLimit from "express-rate-limit";

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000,   // 15 دقيقة
  max: 100                    // 100 طلب كحدّ أقصى
});

app.use("/api", limiter);

عند التجاوز يردّ الخادم بـ 429 Too Many Requests.

التخزين المؤقّت (Caching)

أخبر العميل/الوسطاء بإمكان تخزين الردّ:

res.set("Cache-Control", "public, max-age=3600");   // ساعة
res.json(data);

ETag للتحقّق

ETag: "abc123"

العميل يرسل If-None-Match؛ إن لم يتغيّر، يردّ الخادم 304 Not Modified (توفير نطاق).

أين نخزّن؟

  • ذاكرة مؤقّتة على الخادم (Redis) للبيانات المتكرّرة.
  • CDN للموارد العامّة.

🎯 التالي: التوثيق والاختبار.

هل كان هذا الدرس مفيدًا؟