Artículo
· 22 hr atrás Lectura de 2 min

Memoria un Acelerador de API

Estimada comunidad,

Quería comentarles que hoy publique en OpenExchange un acelerador de APIs muy simple de implementar (con algún parecido a Redis, pero más funcional) y con resultados bastante buenos, a continuación está la publicación del README, espero les sea de ayuda!

https://openexchange.intersystems.com/package/memoria

Memoria

Esta aplicación permite almacenar el resultado de una llamada a la API GET de forma permanente o por un periodo de tiempo, reduciendo los tiempos de respuesta al cliente final.

En el ejemplo a continuación se utiliza la API pública de Rick & Morty para realizar varias consultas al servidor. Cada consulta por sí sola y utilizando la conexión a internet del hogar demora alrededor de 300 ms. Al utilizar el acelerador el tiempo de respuesta es de alrededor de 7 ms.

Cliente

La clase memoria.client es la encargada de llamar al método MGet, este método ejecuta la llamada a la API externa pero primero valida si la información de esta API está cacheada en la tabla memoria.store, de ser así valida que esté dentro del Time to Live (TTL) configurado y retorna el dato, si el TTL ya expiró borra la información y genera la llamada, almacena el resultado y lo retorna al programa.

Código de prueba

Para una API estática, es decir, lista de países, nombre de ciudades, etc., recomiendo usar TTL=0 para mantener la lista en la tienda.

Resultado de la API

En la primera llamada (cuadrado rojo en la parte superior), el tiempo de la llamada fue de 722 ms y en todas las demás llamadas, el tiempo fue de aproximadamente 7 ms, en este caso solo un 1 % del tiempo original.

Después de 10 segundos (valor TTL), el tiempo aumentó a 220 ms

Resultado

Panel

El Panel es una pequeña aplicación que le permite administrar los datos almacenados en caché y eliminarlos si es necesario.

Vista del panel

Comentarios (1)2
Inicie sesión o regístrese para continuar