RateLimiter
RateLimiter — clase para controlar la tasa de solicitudes a la Rest API. La instancia singleton está disponible a través de la propiedad rest.rateLimiter después de la inicialización de Frame.
Limita automáticamente el número de solicitudes por segundo, encola las solicitudes cuando se supera el límite y reintenta las solicitudes al recibir un error HTTP 429.
import { RateLimiter } from '@flowlu/miniapp-jssdk'Propiedades
lastRequestTime
Marca de tiempo (ms) de la última solicitud enviada
get lastRequestTime(): numberlimit
Número máximo de solicitudes por segundo. El valor se obtiene del contexto en la primera llamada a la Rest API mediante Rest.get() o Rest.post(). Un valor de -1 significa que el límite aún no se ha recibido del contexto
get limit(): numberprocessing
Número de solicitudes que se están procesando actualmente
get processing(): numberremaining
Número de solicitudes restantes antes de alcanzar el límite. El valor se actualiza al recibir cada respuesta de la Rest API
get remaining(): numberreset
Marca de tiempo (ms) después de la cual se reinicia el límite. El valor se actualiza al recibir cada respuesta de la Rest API
get reset(): numberMétodos
getInstance
Devuelve la instancia singleton actual de RateLimiter
static getInstance(): RateLimiterdestroy
Elimina las suscripciones y libera los recursos
destroy(): voidEjemplo
import { App, RateLimiter, Rest } from '@flowlu/miniapp-jssdk'
await App.initializeFrame()
const rest = Rest.getInstance()
const rateLimiter = RateLimiter.getInstance()
// obtener el usuario actual
const user = await rest.get('/core/user/get/')
// leer los valores actuales del límite de solicitudes
console.log({
limit: rateLimiter.limit,
remaining: rateLimiter.remaining,
reset: rateLimiter.reset,
})const App = window.FlowluMiniApp;
const frame = await App.initializeFrame();
// obtener el usuario actual
const user = await frame.rest.get('/core/user/get/');
// leer los valores actuales del límite de solicitudes
console.log({
limit: frame.rest.rateLimiter.limit,
remaining: frame.rest.rateLimiter.remaining,
reset: frame.rest.rateLimiter.reset,
});