@blade-dev/redis
v0.0.72
Published
<p align="center"> <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a> </p>
Readme
Descripcion
Paquete de Conexion para interceptar datos de respuesta y guardar la informacion en REDIS-CACHE
Instalacion
Instalacion del paquete
npm i @blade-dev/redisConfiguracion
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"
| Propiedad | Valor | Descripcion | | ------ | ------ | ------ | | key | String (null) | key de donde se guardara los datos guardados CAMPO OBLIGATORIO SI useKeyUrl es FALSE | | ttl | Number (0)| Tiempo de vida del cache almacenar | | keyResponse | String (null) | Propiedad de respuesta de los datos del controlador | | useKeyUrl | Boolean (false) | Si es TRUE tomara la URL del controlador como key para guardar los datos en cache| | ignoreExceptions | Boolean | Ignora 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=trueCaso 2, Control de tiempo de vida del cache en segundos:
curl --location 'https://my-rest-api.com/rest-api-two?ttl=60Recalcar que la propiedad ${TTL} del frontend tiene prioridad al ${TTL} del backend del @SetMetadata("data-cache")
