0.0.72 • Published 3 years ago

@blade-dev/redis v0.0.72

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Descripcion

Paquete de Conexion para interceptar datos de respuesta y guardar la informacion en REDIS-CACHE

Instalacion

Instalacion del paquete

npm i @blade-dev/redis

Configuracion

Configuracion de Paquete en el archivo app.module.ts

import { AppModuleRedisClient, DatapassInterceptor } from '@blade-dev/redis'
@Module({
  imports: [
    AppModuleRedisClient.register(),
  ],
  controllers: [], 
  providers: [
    DatapassInterceptor
  ],
})
export class AppModule {}

Configuracion de Paquete en el archivo my.montroller.ts

import { DatapassInterceptor } from '@blade-dev/redis'

 @Get('/my-rest-api') 
 @SetMetadata("data-cache", {key:"key-name-cache",ttl:15}) 
 @UseInterceptors(DatapassInterceptor)
 /*Configuracion de Res() obligatoria
    { passthrough: true }
 Configuracion de Res() obligatoria*/
 async myRestApi(@Res({ passthrough: true }) res) {
    try {
        /*Configuracion de respuesta obligatoria*/
        const getResponse = await this.appService.getRestApiTWo()
        return getResponse
        /*Configuracion de respuesta obligatoria*/
    } catch (error) {
        return res.status(HttpStatus.BAD_REQUEST).json(error);
    }
 }

Propiedades del decorador @SetMetadata("data-cache")

Descripcion de los campos en "data-cache"

PropiedadValorDescripcion
keyString (null)key de donde se guardara los datos guardados CAMPO OBLIGATORIO SI useKeyUrl es FALSE
ttlNumber (0)Tiempo de vida del cache almacenar
keyResponseString (null)Propiedad de respuesta de los datos del controlador
useKeyUrlBoolean (false)Si es TRUE tomara la URL del controlador como key para guardar los datos en cache
ignoreExceptionsBooleanIgnora exepciones del servidor de ms-redis

Uso del Interceptor desde el Fronted

Se pueden utilizar las siguientes propiedades desde el frontend en el QUERY de una solicitud HTTP | Propiedad | Valor | Descripcion | | ------ | ------ | ------ | | noCache | Boolean (false) | Si el valor es TRUE ignora el cache almacenado en redis | | ttl | Number (0)| Tiempo de vida del cache a almacenar |

Configuracion en solicitud HTTP

Caso 1, Ignorar Cache:

curl --location 'https://my-rest-api.com/rest-api-two?noCache=true

Caso 2, Control de tiempo de vida del cache en segundos:

curl --location 'https://my-rest-api.com/rest-api-two?ttl=60

Recalcar que la propiedad ${TTL} del frontend tiene prioridad al ${TTL} del backend del @SetMetadata("data-cache")