hefestoapicontainer

Caché

Cachear urls

El nginx de Hefesto está preparado para cachear cualquier url de tipo GET en función de los valores de las cabeceras de respuesta Cache-Control y Expires.

Puedes utilizar la directiva CacheUrl, para setear las cabeceras anteriores en la respuesta al usuario, y que la url que estás sirviendo quede cacheada.

    get /user/{id}:
        Connect:
            directive: DatabaseConnect
        FindUserById:
            directive: FindUserById
            userId: $.message.pathParam.id
            target: user
        ModifyMessage:
            directive: ModifyMessage
            body: $.memory.user
            headers: 
                Content-Type: application/json
        Cache:
            directive: CacheUrl 
            expirationMinutes: 120

En el ejemplo anterior se ha definido un endpoint, que recibe en el path un id de usuario, lo busca en base de datos, y lo devuelve en formato JSON.

La última directiva que se utiliza es CacheUrl, que recibe como parámetro los minutos que permanecerá cacheada la url. La primera vez que se consulte el endpoint, se ejecutaran todas las directivas, quedando cacheada la información de respuesta en nginx, la siguiente vez que se consulte, nginx devolverá la información directamente, y no hará falta volver a ejecutar las directivas.

La caché de nginx maneja tiempos de expiración, pero si quieres borrar toda la caché puedes usar el siguiente comando:

    cd hefesto-server/scripts/
    ./cache-flush.sh

Cachear lecturas http

Al hacer una conexión http de lectura, la respuesta puede quedar cacheada automáticamente, puedes ver cómo hacerlo en la sección Pull de llamadas http y proxies.

Cachear cualquier fragmento de información

Al tener acceso a redis, puedes implementar tus propios mecanismos de cacheo en tus directivas.

Ir a la home