هل سبق لك أن سمعت عن «واجهات برمجة التطبيقات» أو الـ «APIs»؟ تخيلها كقنوات تواصل سرية تسمح للتطبيقات والخدمات المختلفة بالتحدث مع بعضها البعض. فعلى سبيل المثال، عندما تستخدم تطبيقًا للطقس، فإنه يتحدث مع API خاص بشركة الطقس ليحصل على المعلومات ويعرضها لك.

مثل أي خدمة قيّمة، يجب تنظيم استخدام الـ APIs. هذا هو بالضبط ما تفعله «إدارة حصص استخدام واجهة برمجة التطبيقات» أو «API Quota Management». تخيل أنك في مدينة ملاهٍ شهيرة. كل لعبة عليها حد أقصى لعدد المرات التي يمكنك ركوبها، أو ربما تذكرتك تمنحك عددًا معينًا من الألعاب المجانية في اليوم أو الشهر. هذا هو ما تفعله حصص الـ API.

تتيح هذه الحصص لمزودي الخدمات وضع قيود على عدد الطلبات التي يمكن لمستخدم معين أو شركة معينة (يُطلق عليها 'مستأجر') إجراؤها على واجهة برمجة التطبيقات الخاصة بهم. قد تكون هذه القيود:
* عدد معين من الطلبات في الدقيقة (مثلاً: لا تزيد عن 100 طلب في الدقيقة لكل مستخدم).
* عدد معين من الطلبات في اليوم (مثلاً: 10,000 طلب يوميًا لكل شركة).
* عدد معين من الطلبات في الشهر (مثلاً: مليون طلب شهريًا لخطة احترافية).

ولماذا هذا مهم؟
1. منع الإساءة والإفراط في الاستخدام: يمنع مستخدمًا واحدًا من استهلاك جميع موارد الخادم، مما يؤثر على تجربة الآخرين.
2. العدالة وتعدد الخطط: يسمح بتقديم خطط خدمة مختلفة (مجانية، مدفوعة، مخصصة) بناءً على مستويات الاستخدام. فالمستخدم المجاني يحصل على حصة أقل من المستخدم الذي يدفع.
3. الفوترة الدقيقة: يضمن أن العملاء يدفعون فقط مقابل ما يستخدمونه بالفعل، ويساعد الشركات في تتبع الاستهلاك.

الأداة الجديدة التي نتحدث عنها اليوم، nestjs-quota، هي حل ذكي لهذه المشكلة. بدلاً من مجرد فحص حد واحد، يمكنها التحقق من عدة حدود في وقت واحد - مثل الحد الأقصى للمستخدم في الدقيقة، وحد الشركة في اليوم، وحد الشركة في الشهر - واتخاذ القرار بـ 'السماح بالطلب' أو 'رفضه' في خطوة واحدة لا تتجزأ. هذا يضمن أن الحسابات دقيقة ولا تضيع أي طلبات 'نصف مدفوعة'. إنها تعمل بذكاء حتى عبر العديد من الخوادم، مما يجعل إدارة الـ API أكثر كفاءة وعدلاً للجميع.