Accede al servicio de cuotas en Node.js

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Introducción

En este tema, se explica cómo usar apigee-access para acceder al servicio de cuota de Apigee Edge desde una aplicación de Node.js. Con apigee-access, puedes aplicar y restablecer valores de cuota.

Ejemplo

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

Métodos


apply

Modifica la configuración de un objeto de cuota. Usa este método para aumentar o disminuir la cuota, cambiar los intervalos de tiempo y realizar otras configuraciones.

Uso

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

Ejemplo

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

Parámetros

El método apply() toma dos parámetros, un objeto y una función:

(1) El primer parámetro es un objeto JSON con estos campos:

  • identifier (cadena, obligatorio): Un identificador único del bucket de cuota. En la práctica, puede ser un ID de aplicación, una dirección IP o nombre de usuario.
  • timeUnit (cadena, obligatorio): Es el tiempo que se acumulará el bucket de cuota hasta que se restablezca. Los valores válidos son "minute", "hour", "day", "week" y "month."
  • allow (número, obligatorio): Es el valor máximo para el bucket de cuota. Este valor se combinará con el valor actual para mostrar si la cuota se completó correctamente.
  • interval (número, opcional): Se combina con "timeUnit" para determinar cuánto tiempo antes de que se restablezca la cuota. El valor predeterminado es 1. Establece un valor más grande para permitir cuotas como "dos horas", "tres semanas", etcétera.
  • weight (número, opcional): Es el valor por el que se aumentará la cuota. El valor predeterminado es 1.

(2) El segundo argumento es una función de devolución de llamada con estos dos argumentos:

  • El primer argumento es un objeto de error si no se puede aumentar la cuota o no está definido si la operación se realizó correctamente.
  • El segundo es un objeto que contiene los siguientes campos:
    • used (número): Es el valor actual del bucket de cuota.
    • allowed (número): Es el valor máximo del bucket de cuota antes de que se considere que se superó la cuota. Se pasó el mismo valor como "allow" en el objeto de solicitud.
    • isAllowed (booleano): Si queda espacio en la cuota , es verdadero siempre que "used" sea menor o igual que "allowed".
    • expiryTime (largo): Es la marca de tiempo, en milisegundos desde el formato de 1970, cuando se restablecerá el bucket de cuota.
    • timestamp (largo): Es la marca de tiempo en la que se actualizó la cuota.

Ejemplo

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

reset

Para restablecer la cuota a cero, llama a quota.reset(). Este método toma dos parámetros:
  • Un objeto JSON con estos campos:
    • identifier (cadena, obligatorio): Un identificador único del bucket de cuota. En la práctica, puede ser un ID de aplicación, una dirección IP o un nombre de usuario.
    • timeUnit (cadena, obligatorio): Es el tiempo que se acumulará el bucket de cuota hasta que se restablezca. Los valores válidos son "minute", "hour", "day", "week" y "month".
    • interval (número, opcional): Se combina con "timeUnit" para determinar cuánto tiempo antes de que se restablezca la cuota. El valor predeterminado es 1. Establece un valor más grande para permitir tiempos de restablecimiento como "dos horas", "tres semanas", etcétera.
  • Una función de devolución de llamada:
    • La devolución de llamada toma un objeto de error como el primer parámetro si falla el restablecimiento.

Caso de uso avanzado de cuota

Cuando creas una cuota, puedes incluir un objeto "options" opcional. Este objeto tiene un parámetro opcional:
  • syncInterval (número, opcional): Es la cantidad de segundos que la implementación de cuota distribuida sincroniza su estado en la red. El valor predeterminado es 10.
Usa este parámetro para optimizar el rendimiento de la cuota distribuida en la red. Ten en cuenta que una configuración más baja degradará el rendimiento y aumentará de forma drástica la latencia de la operación "apply". La configuración predeterminada de 10 segundos es adecuada para muchas aplicaciones. El intervalo se puede establecer en cero, lo que significa que el estado se sincroniza cada vez que "apply" es llamado. En este caso, el rendimiento será mucho peor.