Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Введение
В этой теме объясняется, как использовать 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-объект со следующими полями:
- Идентификатор (строка, обязательно): Уникальный идентификатор квоты. На практике это может быть идентификатор приложения, IP-адрес или имя пользователя.
- timeUnit (строка, обязательно): Сколько времени будет накапливаться квота до ее сброса. Допустимые значения: "минута", "час", "день", "неделя" и "месяц".
- allow (число, обязательно): Максимальное значение для квоты. Это значение будет объединено с текущим значением для возврата информации о том, успешно ли выполнена квота.
- interval (число, необязательно): В сочетании с параметром "timeUnit" определяет, через какое время квота будет сброшена. Значение по умолчанию — 1. Установите большее значение, чтобы разрешить квоты, например, "два часа", "три недели" и так далее.
- Вес (число, необязательно): значение, на которое увеличивается квота. По умолчанию — 1.
(2) Второй аргумент — это функция обратного вызова с этими двумя аргументами:
- Первый аргумент — это объект Error, если квоту не удаётся увеличить, или undefined, если операция прошла успешно.
- Второй объект содержит следующие поля:
- Использовано (число): Текущее значение квоты.
- allowed (number): Максимальное значение квоты, при превышении которого квота считается исчерпанной. В объекте запроса было передано то же значение, что и "allow".
- isAllowed (логическое значение): Если в квоте еще есть место — true, если "used" меньше или равно "allowed".
- expiryTime (long): Временная метка в миллисекундах с 1970 года, когда будет сброшена квота.
- метка времени (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-объект со следующими полями:
- Идентификатор (строка, обязательно): Уникальный идентификатор квоты. На практике это может быть идентификатор приложения, IP-адрес или имя пользователя.
- timeUnit (строка, обязательно): До какого времени будет накапливаться квота после ее сброса. Допустимые значения: "минута", "час", "день", "неделя" и "месяц".
- interval (число, необязательно): В сочетании с параметром "timeUnit" определяет, через какое время квота будет сброшена. Значение по умолчанию — 1. Установите большее значение, чтобы разрешить сброс квоты, например, "два часа", "три недели" и так далее.
- Функция обратного вызова:
- Функция обратного вызова принимает в качестве первого параметра объект Error, если сброс не удался.
Вариант использования расширенных квот
При создании квоты можно включить необязательный объект "options". Этот объект имеет один необязательный параметр:- syncInterval (число, необязательно): Количество секунд, в течение которых распределенная реализация квот синхронизирует свое состояние по сети. Значение по умолчанию — 10.