Caché de respuestas

La API pública de GraphQL almacena en caché por defecto las respuestas resueltas. Cuando se escribe un registro, se descartan las respuestas en caché que lo referenciaban.

Activada por defecto, durante 60 segundos

Todo modelo que contiene registros se almacena en caché durante 60 segundos. Una repetición de la misma consulta dentro de ese plazo devuelve la respuesta almacenada sin resolverla de nuevo. Los modelos ordinarios comparten una entrada entre quienes envían la misma consulta. Los modelos cuyos registros tienen propietario se almacenan en caché por propietario.

Invalidación tras una escritura

Crear, actualizar, eliminar, publicar o despublicar un registro descarta todas las respuestas en caché que lo referenciaban. Una respuesta de lista se descarta cuando se edita cualquier registro de la lista, y los modelos no relacionados no se tocan. La invalidación se ejecuta después de que la escritura se confirma, así que durante unos milisegundos una lectura aún puede recibir la respuesta anterior. El plazo es la red de seguridad si se pierde una invalidación, y si el almacén de caché es inaccesible, la escritura se confirma igualmente y la siguiente lectura se resuelve con normalidad.

Ajuste y desactivación

El plazo y el alcance se definen por modelo, en la consola o en tu archivo de configuración bajo cacheControl, y un modelo puede excluirse por completo. Una petición individual puede forzar una lectura nueva con una cabecera no-cache. Las mutaciones y las lecturas de borradores nunca se almacenan en caché.

Leer tu propia escritura

Una cabecera X-Foir-Write-Token acompaña la respuesta de una mutación. Envíala en tu siguiente lectura y el servidor sirve una entrada en caché solo si es al menos tan reciente como esa escritura.

Purgar a mano

Para cambios que la ruta de escritura no puede ver, foir cache purge limpia un registro, un modelo o todo. Una mutación de refresco cubre un único registro cuyo contenido cambió en otro sistema.

Lee el detalle

La guía de caché cubre los alcances de la caché, los ajustes por modelo, las cabeceras de petición y el endpoint compartido para las CDN.