إذا كنت تدير واجهة برمجة تطبيقات (API) متعددة المستأجرين على NestJS، فإن حزمة `nestjs-quota` الجديدة هي الحل الأمثل لك لإدارة الحصص بذكاء وفعالية، متجاوزة حدود محددات السرعة البسيطة.
يا عشاق NestJS، لدينا أخبار رائعة لكم! هل تديرون واجهة برمجة تطبيقات (API) متعددة المستأجرين وتجدون صعوبة في تتبع استخدام API؟ حان الوقت لنتعرف على `nestjs-quota`، الحزمة مفتوحة المصدر التي تعدكم بتحسين طريقة إدارتكم لحصص API.
نعلم جميعًا أن مجرد تحديد معدل الطلبات (rate limiter) لا يكفي لتطبيقات اليوم المعقدة. أنتم بحاجة إلى معرفة ما إذا كان الطلب يجب أن يستمر بناءً على عدة قيود في آن واحد، مثل عدد الطلبات لكل مستخدم في الدقيقة، أو لكل مستأجر في اليوم، أو حتى في الشهر. بالإضافة إلى ذلك، من الضروري تتبع الاستخدام الفعلي لكل مستأجر لأغراض الفواتير ولوحات المعلومات.
هذا هو بالضبط ما يحلّه `nestjs-quota`. فبدلاً من التعامل مع كل حد على حدة، مما قد يؤدي إلى مشاكل مثل شروط التنافس (race conditions) حيث قد تتجاوز الحصص المحددة، أو رسوم جزئية حيث يتم خصم طلب ثم يُرفض لاحقًا بسبب حد آخر، فإن `nestjs-quota` يتفادى كل ذلك. يقوم هذا الحل المبتكر بالتحقق من جميع الحصص ذات الصلة واستهلاكها في عملية ذرية واحدة. هذا يعني أنكم لن تتعرضوا أبدًا لطلب تم احتسابه جزئيًا ثم رفضه.
وما يميز `nestjs-quota` حقًا هو قدرته على العمل عبر خوادم متعددة باستخدام نص برمجي واحد من Redis Lua لكل قرار، مما يضمن الاتساق. كما يدعم محاولات إعادة التشغيل القابلة للتكرار (idempotent retries)، وخيارات الحجز/الالتزام/الإفراج للعمليات التي قد لا تعرفون تكلفتها مقدمًا. يمكنكم أيضًا تحديد حدود ديناميكية بناءً على الخطط المختلفة (مثل الخطط المجانية والمدفوعة)، وتكوين السلوك في حالة الفشل (سواء بالفتح أو الإغلاق). يأتي الحل مزودًا بمُزينات (decorators) وحارس (guard) ومعترض (interceptor) خاص بـ NestJS، وقلبه لا يعتمد على أي شيء في وقت التشغيل، مما يجعل Redis و NestJS طبقات اختيارية. إنه حل مرن وفعّال حقًا يجعل إدارة حصص API أمرًا سهلاً وآمنًا.
نعلم جميعًا أن مجرد تحديد معدل الطلبات (rate limiter) لا يكفي لتطبيقات اليوم المعقدة. أنتم بحاجة إلى معرفة ما إذا كان الطلب يجب أن يستمر بناءً على عدة قيود في آن واحد، مثل عدد الطلبات لكل مستخدم في الدقيقة، أو لكل مستأجر في اليوم، أو حتى في الشهر. بالإضافة إلى ذلك، من الضروري تتبع الاستخدام الفعلي لكل مستأجر لأغراض الفواتير ولوحات المعلومات.
هذا هو بالضبط ما يحلّه `nestjs-quota`. فبدلاً من التعامل مع كل حد على حدة، مما قد يؤدي إلى مشاكل مثل شروط التنافس (race conditions) حيث قد تتجاوز الحصص المحددة، أو رسوم جزئية حيث يتم خصم طلب ثم يُرفض لاحقًا بسبب حد آخر، فإن `nestjs-quota` يتفادى كل ذلك. يقوم هذا الحل المبتكر بالتحقق من جميع الحصص ذات الصلة واستهلاكها في عملية ذرية واحدة. هذا يعني أنكم لن تتعرضوا أبدًا لطلب تم احتسابه جزئيًا ثم رفضه.
وما يميز `nestjs-quota` حقًا هو قدرته على العمل عبر خوادم متعددة باستخدام نص برمجي واحد من Redis Lua لكل قرار، مما يضمن الاتساق. كما يدعم محاولات إعادة التشغيل القابلة للتكرار (idempotent retries)، وخيارات الحجز/الالتزام/الإفراج للعمليات التي قد لا تعرفون تكلفتها مقدمًا. يمكنكم أيضًا تحديد حدود ديناميكية بناءً على الخطط المختلفة (مثل الخطط المجانية والمدفوعة)، وتكوين السلوك في حالة الفشل (سواء بالفتح أو الإغلاق). يأتي الحل مزودًا بمُزينات (decorators) وحارس (guard) ومعترض (interceptor) خاص بـ NestJS، وقلبه لا يعتمد على أي شيء في وقت التشغيل، مما يجعل Redis و NestJS طبقات اختيارية. إنه حل مرن وفعّال حقًا يجعل إدارة حصص API أمرًا سهلاً وآمنًا.