Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Введение
В этой статье рассказывается, как использовать apigee-access для доступа к сервису квот Apigee Edge из приложения Node.js. С помощью apigee-access можно применять и сбрасывать значения квот.
Пример
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'); } }
Параметры
Метод apply() принимает два параметра: объект и функцию.
1. Первый параметр – это объект JSON со следующими полями:
- identifier (строка, обязательно): уникальный идентификатор сегмента квоты. На практике это может быть идентификатор приложения, IP-адрес или имя пользователя.
- timeUnit (строка, обязательный параметр). Период времени, в течение которого накапливается квота, прежде чем она будет сброшена. Допустимые значения: "minute", "hour", "day", "week" и "month".
- allow (число, обязательно). Максимальное значение для квоты. Это значение будет объединено с текущим, чтобы определить, достигнута ли квота.
- interval (число, необязательно). Вместе с параметром timeUnit определяет, как долго будет действовать квота до сброса. Значение по умолчанию – 1. Установите большее значение, чтобы разрешить квоты, например "два часа", "три недели" и т. д.
- weight (число, необязательный параметр). Значение, на которое нужно увеличить квоту. Значение по умолчанию – 1.
2. Второй аргумент – это функция обратного вызова с двумя аргументами:
- Первый аргумент – это объект Error, если квоту увеличить нельзя, или undefined, если операция выполнена успешно.
- Второй – объект, содержащий следующие поля:
- 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", "hour", "day", "week" и "month".
- interval (число, необязательно). Вместе с параметром timeUnit определяет, как долго до сброса квоты. Значение по умолчанию – 1. Установите большее значение, чтобы разрешить сброс времени, например "два часа", "три недели" и т. д.
-
Функция обратного вызова:
- Если сброс не удастся, в качестве первого параметра обратного вызова будет передан объект Error.
Расширенное использование квот
При создании квоты можно добавить необязательный объект "options". У этого объекта есть один необязательный параметр:- syncInterval (число, необязательно). Количество секунд, через которое реализация распределенной квоты синхронизирует свое состояние в сети. Значение по умолчанию – 10.