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
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.
Al tener acceso a redis, puedes implementar tus propios mecanismos de cacheo en tus directivas.