גישה לשירות המכסות ב-Node.js

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מבוא

כאן מוסבר איך משתמשים ב-apigee-access כדי לגשת לשירות המכסות של Apigee Edge מאפליקציית Node.js. כשמשתמשים בגישה לממשק API, אפשר להחיל את הערכים של המכסות ולאפס אותם.

דוגמה

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);
    });

שיטות


אישור

שינוי ההגדרות באובייקט מכסה. אפשר להשתמש בשיטה הזו כדי להגדיל או להקטין את המכסה, כדי לשנות את מרווחי הזמן ולקבוע הגדרות נוספות.

Usage

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'); }
                }       

פרמטרים

השיטה Apply() מתייחסת לשני פרמטרים: אובייקט ופונקציה:

(1) הפרמטר הראשון הוא אובייקט JSON עם השדות הבאים:

  • identifier (מחרוזת, חובה): מזהה ייחודי של קטגוריית המכסה. בפועל, השדה יכול להיות מזהה אפליקציה, כתובת IP או שם משתמש.
  • timeUnit (מחרוזת, חובה): משך הזמן שקטגוריית המכסה תצבור עד לאיפוסה. הערכים החוקיים הם "minute", "שעה", "יום", "שבוע" ו"חודש".
  • allow (number, required): הערך המקסימלי של קטגוריית המכסה. הערך הזה ישולב עם הערך הנוכחי כדי לציין אם המכסה הצליחה.
  • interval (מספר, אופציונלי): בשילוב עם "timeUnit" כדי לקבוע כמה זמן לפני שהמכסה תתאפס. ערך ברירת המחדל הוא 1. צריך להגדיר ערך גבוה יותר כדי לאפשר מכסות כמו "שעתיים", "שלושה שבועות" וכו'.
  • weight (מספר, אופציונלי): הערך שלפיו יש להגדיל את המכסה. ברירת המחדל היא 1.

(2) הארגומנט השני הוא פונקציית קריאה חוזרת עם שני הארגומנטים:

  • הארגומנט הראשון הוא אובייקט שגיאה אם לא ניתן להגדיל את המכסה, או לבטל את ההגדרה אם הפעולה הצליחה.
  • האובייקט השני הוא אובייקט שמכיל את השדות הבאים:
    • used (מספר): הערך הנוכחי של קטגוריית המכסה.
    • allowed (מספר): הערך המקסימלי של קטגוריית המכסה, לפני חריגה מהמכסה. אותו הערך הועבר כ-"allow" באובייקט הבקשה.
    • isAllowed (בוליאני): אם נשאר מקום במכסה – true כל עוד הערך של "used" קטן או שווה ל-'allowed'.
    • expiryTime (long): חותמת הזמן, באלפיות השנייה משנת 1970, שבה תאפס את קטגוריית המכסה.
    • timestamp (long): חותמת הזמן שבה המכסה עודכנה.

דוגמה

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'); }
}

איפוס

כדי לאפס את המכסה, קוראים ל-Quota.reset(). לשיטה הזו נדרשים שני פרמטרים:
  • אובייקט JSON עם השדות הבאים:
    • identifier (מחרוזת, חובה): מזהה ייחודי של קטגוריית המכסה. בפועל, השדה הזה יכול להיות מזהה אפליקציה, כתובת IP או שם משתמש.
    • timeUnit (מחרוזת, חובה): כמה זמן יצטברו קטגוריית המכסה עד שהיא תאופס. הערכים החוקיים הם 'minute', 'שעה', 'יום', 'שבוע' ו'חודש'.
    • interval (מספר, אופציונלי): בשילוב עם "timeUnit" כדי לקבוע כמה זמן לפני שהמכסה תתאפס. ערך ברירת המחדל הוא 1. צריך להגדיר ערך גדול יותר כדי לאפשר זמני איפוס, כמו "שעתיים", "שלושה שבועות" וכו'.
  • פונקציית קריאה חוזרת:
    • הקריאה החוזרת (callback) מקבלת אובייקט שגיאה כפרמטר הראשון אם האיפוס נכשל.

תרחיש לדוגמה לשימוש במכסה מתקדמת

כשיוצרים מכסה אפשר לכלול אובייקט "options" אופציונלי. לאובייקט הזה יש פרמטר אופציונלי אחד:
  • syncInterval (מספר, אופציונלי): מספר השניות שבהן הטמעת המכסה המבוזרת מסנכרנת את המצב שלה ברשת. ברירת המחדל היא 10.
הפרמטר הזה מאפשר לכם לשפר את הביצועים של המכסה המבוזרת ברשת. חשוב לזכור שהגדרה נמוכה יותר תפגע בביצועים ותאריך באופן משמעותי את זמן האחזור של פעולת 'אישור'. הגדרת ברירת המחדל של 10 שניות היא הגדרה טובה עבור אפליקציות רבות. אפשר להגדיר את המרווח כאפס. כלומר, המצב מסונכרן בכל פעם שהתכונה מופעלת. במקרה כזה הביצועים יהיו הרבה יותר נמוכים.