Accede al servicio de cuotas en Node.js

Estás viendo la documentación de Apigee Edge.
Ve 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 cuotas de Apigee Edge desde una aplicación de Node.js. Con apigee-access, puedes aplicar y restablecer los 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


aplicar

Modifica la configuración de un objeto Quota. Usa este método para incrementar 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): Es un identificador único del bucket de cuota. En la práctica, podría ser un ID de aplicación, una dirección IP o un nombre de usuario.
  • timeUnit (cadena, obligatoria): Indica durante cuánto tiempo 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 del bucket de cuota. Este valor se combinará con el valor actual para mostrar si la cuota se realizó 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 alto para permitir cuotas como “dos horas”, “tres semanas”, etcétera.
  • weight (número, opcional): Es el valor en el que se incrementará 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 Error si no se puede incrementar la cuota, o bien indefinido 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 y cuando "used" sea menor o igual que "allowed".
    • expiryTime (long): Es la marca de tiempo, en milisegundos desde el formato de 1970, en la que se restablecerá el bucket de cuota.
    • timestamp (long): 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'); }
}

restablecer

Para restablecer la cuota a cero, llama a quota.reset(). Este método usa dos parámetros:
  • Un objeto JSON con los siguientes campos:
    • identifier (cadena, obligatorio): Es 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 (string, obligatoria): Indica durante cuánto tiempo 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. Configúralo en un valor mayor 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 Error como primer parámetro si falla el restablecimiento.

Caso de uso de cuotas avanzadas

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 la 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 un parámetro de configuración más bajo degradará el rendimiento y aumentará de forma significativa la latencia de la operación "aplicar". El parámetro de configuración predeterminado de 10 segundos es una buena opción para muchas aplicaciones. El intervalo se puede establecer en cero, lo que significa que el estado se sincroniza cada vez que se llama a "apply". El rendimiento será mucho peor en este caso.