الوصول إلى خدمة الحصة في Node.js

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

مقدمة

يوضّح هذا الموضوع طريقة استخدام apigee-access للوصول إلى خدمة حصة Apigee Edge من تطبيق Node.js. باستخدام إذن الوصول إلى واجهة برمجة التطبيقات، يمكنك تطبيق قيم الحصص وإعادة ضبطها.

مثال

var apigee = require('apigee-access');
var quota = apigee.getQuota();
quota.apply({ identifier: 'Foo', allow: 10, timeUnit: 'hour' },
    function(err, result) {
         console.log('Quota applied: %j', result);
    });

الطُرق


تطبيق

لتعديل الإعدادات في كائن الحصة. استخدِم هذه الطريقة لزيادة الحصة أو إنقاصها، وتغيير الفترات الزمنية، وإجراء عمليات ضبط أخرى.

الاستخدام

var apigee = require('apigee-access');
var quota = apigee.getQuota();
quota.apply({parameters}, callback);

مثال

var apigee = require('apigee-access');
var quota = apigee.getQuota();

        // Apply a quota of 100 requests per hour
        quota.apply({
         identifier: 'Foo',
         timeUnit: 'hour',
         allow: 100
        }, quotaResult);
                
                function quotaResult(err, r) {
                 if (err) { console.error('Quota failed'); }
                }       

المَعلمات

تستخدم الطريقة application() معلمتين، هما كائن ودالة:

(1) المعلمة الأولى هي كائن JSON يضم الحقول التالية:

  • identifier (سلسلة نصية مطلوبة): معرّف فريد لمجموعة بيانات الحصة. من الناحية العملية، قد يكون معرّف تطبيق أو عنوان IP أو اسم مستخدم.
  • timeUnit (سلسلة مطلوبة): المدة التي ستتراكم فيها حزمة الحصة إلى أن تتم إعادة ضبطها. والقيم الصالحة هي "minute" و"hour" و"اليوم" و"الأسبوع" و"الشهر".
  • allow (رقم مطلوب): الحد الأقصى لقيمة حزمة الحصة. سيتم دمج هذه القيمة مع القيمة الحالية لعرض ما إذا تم تنفيذ الحصة بنجاح.
  • interval (رقم، اختيارية): يتم دمجها مع "timeUnit" لتحديد المدة المستغرَقة قبل إعادة ضبط الحصة. القيمة التلقائية هي 1. ويمكنك ضبطها على قيمة أكبر للسماح بحصص محددة، مثل "ساعتين" و"ثلاثة أسابيع" وما إلى ذلك.
  • weight (رقم، اختياري): القيمة المطلوب زيادة الحصة بها. القيمة التلقائية هي 1.

(2) الوسيطة الثانية هي دالة استدعاء مع هاتين الوسيطتين:

  • الوسيطة الأولى هي كائن خطأ إذا لم تتمكّن من زيادة الحصة، أو إذا كانت غير معرَّفة إذا نجحت العملية.
  • والثاني هو كائن يحتوي على الحقول التالية:
    • used (رقم): القيمة الحالية لحزمة الحصة.
    • allowed (الرقم): الحد الأقصى لقيمة مجموعة بيانات الحصة قبل اعتبار أنه تم تجاوز الحصة. تم تمرير القيمة نفسها باسم "allow" في كائن الطلب.
    • isAllowed (منطقي): إذا كانت هناك مساحة متبقية في الحصة -- true طالما أن "used" أقل من أو تساوي "allowed".
    • expiryTime (طويل): الطابع الزمني، بالمللي ثانية منذ إنشاء 1970، وقت إعادة ضبط حزمة الحصة.
    • timestamp (الطويل): الطابع الزمني الذي تم فيه تعديل الحصة.

مثال

var apigee = require('apigee-access');
var quota = apigee.getQuota();
 

// Apply a quota of 100 requests per hour
quota.apply({
  identifier: 'Foo',
  timeUnit: 'hour',
  allow: 100
}, quotaResult);
 

// Apply a quota of 500 requests per five minutes
quota.apply({
  identifier: 'Bar',
  timeUnit: 'minute',
  interval: 5,
  allow: 500
}, quotaResult);


// Increment the quota by a value of 10
quota.apply({
  identifier: 'Foo',
  timeUnit: 'hour',
  allow: 100,
  weight: 10
}, quotaResult);


function quotaResult(err, r) {
  if (err) { console.error('Quota failed'); }
}

إعادة ضبط

لإعادة ضبط الحصة على صفر، يمكنك استدعاء الدالة data.reset(). تستخدم هذه الطريقة معلَمتَين:
  • كائن JSON يضم الحقول التالية:
    • identifier (سلسلة نصية مطلوبة): معرّف فريد لمجموعة بيانات الحصة. من الناحية العملية، قد يكون معرّف تطبيق أو عنوان IP أو اسم مستخدم.
    • timeUnit (سلسلة مطلوبة): المدة التي ستتراكم فيها حزمة الحصة حتى تتم إعادة ضبطها. والقيم الصالحة هي "minute" و"hour" و"اليوم" و"الأسبوع" و "الشهر".
    • interval (رقم، اختيارية): يتم دمجها مع "timeUnit" لتحديد المدة المستغرَقة قبل إعادة ضبط الحصة. القيمة التلقائية هي 1. اضبط القيمة على قيمة أكبر للسماح بأوقات إعادة الضبط، مثل "ساعتان" أو "ثلاثة أسابيع" وما إلى ذلك.
  • دالة معاودة الاتصال:
    • وتختار رد الاستدعاء كائن "خطأ" كمَعلمة أولى إذا تعذّرت إعادة الضبط.

حالة استخدام الحصة المتقدمة

عند إنشاء حصة، يمكنك تضمين عنصر "options" اختياري. يحتوي هذا العنصر على مَعلمة اختيارية واحدة:
  • syncInterval (رقم، اختياري): عدد الثواني التي تتم فيها مزامنة حالة تنفيذ الحصة الموزعة على الشبكة. والعدد التلقائي هو 10.
استخدِم هذه المَعلمة لتحسين أداء الحصة الموزَّعة على مستوى الشبكة. وتذكَّر أنّ الإعداد المنخفض سيؤثّر سلبًا في الأداء ويزيد بشكل كبير من وقت الاستجابة لعملية "تطبيق". يعد الإعداد الافتراضي لمدة 10 ثوانٍ إعدادًا جيدًا للعديد من التطبيقات. قد يتم ضبط الفاصل الزمني على صفر، ما يعني أنّه تتم مزامنة الحالة في كل مرة يتم فيها استدعاء الأمر "تطبيق". وسيكون الأداء أسوأ بكثير في هذه الحالة.