Añadiendo caché HTTP
Cuando las consultas se ejecutan contra el servidor GraphQL usando GET (en lugar del método más tradicional POST), la respuesta GraphQL puede cachearse en el cliente o en etapas intermedias entre el cliente y el servidor (como una CDN), apoyándose en el caché HTTP estándar.
Esto funciona de forma natural para las consultas persistidas, y para el endpoint único y los endpoints personalizados puede funcionar añadiendo el parámetro ?query={ GraphQL query } al endpoint.
La configuración se crea mediante una lista de control de caché, y se entrega al endpoint a través de la configuración del esquema.
Ejecutando el endpoint vía GET
Las consultas persistidas ya son adecuadas para ejecutarse vía GET, ya que almacenan la consulta GraphQL en el servidor (es decir, no debe proporcionarse en el cuerpo de la petición).
Para el endpoint único y los endpoints personalizados, sin embargo, la consulta debe proporcionarse bajo el parámetro ?query=... añadido a la URL del endpoint.
Por ejemplo, la siguiente consulta GraphQL:
{
posts {
id
title
url
author {
id
name
url
}
}
}...puede ejecutarse vía GET contra el endpoint único de este modo:
https://mysite.com/graphql/?query={ posts { id title url author { id name url } } }
Cálculo automático de max age
El valor max-age de la respuesta se calcula automáticamente a partir de las listas de control de acceso asignadas al endpoint (vía la configuración del esquema).
Este valor es el menor valor max-age de todos los campos y directivas en la consulta solicitada, o no-store si:
- se ejecuta cualquier mutación
- cualquier campo o directiva tiene
max-agecon valor0 - una regla de control de acceso debe comprobar el estado del usuario para cualquier campo o directiva (en cuyo caso, la respuesta es específica del usuario, por lo que no puede cachearse)
Max-age por defecto
Los campos que no tengan ningún max-age específico usarán el valor por defecto, definido en la Configuración del Esquema:

Si no se establece, se usará el valor max-age por defecto definido en la página de Ajustes, en la pestaña "Cache Control". Este valor, que es 86400 segundos, puede modificarse en los Ajustes.
Ejemplo
Supongamos que tenemos la siguiente configuración de valores max-age para campos del tipo User:
name=>600url=>30
Entonces, la respuesta a esta consulta tendrá el valor max-age establecido en 86400 (porque ni displayName ni email han sido configurados, por lo que usan el valor por defecto):
query {
users {
displayName
email
}
}La respuesta a esta consulta tendrá el valor max-age establecido en 30 (correspondiente a url, que es el valor más bajo de todos los campos configurados):
query {
user(by: {id: 1}) {
name
url
}
}La respuesta a esta consulta tendrá el valor max-age establecido en no-store (porque el campo me requiere el estado del usuario):
query {
me {
name
url
}
}La respuesta a esta consulta tendrá el valor max-age establecido en no-store (porque ejecuta una mutación):
mutation {
createPost {
id
}
}Accediendo a todas las listas de control de caché
Al hacer clic en "Cache Control Lists" en el menú del plugin, se muestra la lista de todas las listas de control de caché creadas:

Creando una nueva lista de control de caché
Haz clic en el botón "Add New Cache Control List" para abrir el editor de WordPress:

Asigna un título a la lista de control de caché, añade entradas con campos y directivas, y configura el valor max-age para ellos:

Cuando esté lista, haz clic en el botón Publicar. A continuación, la nueva lista de control de caché queda disponible para la configuración del esquema.
Entradas de Cache Control
Cada lista de control de caché contiene una o varias entradas, cada una de ellas con los siguientes elementos:
- Los campos para los que configurar el caché
- Las directivas para las que configurar el caché
- El valor
max-agepara ellos

Seleccionando campos desde interfaces
Además de campos desde tipos, también podemos seleccionar campos desde interfaces. En este caso, el valor max-age se aplica al consultar dichos campos desde cualquier tipo que implemente la interfaz.

Describiendo la lista de control de caché
Usa el campo "Extracto", del panel de ajustes del documento, para dar una descripción a la lista de control de caché.
Encuentra más información en la guía Añadiendo una descripción a la API.
Usando la lista de control de caché
Tras crear la lista de control de caché, podemos hacer que el endpoint personalizado o la consulta persistida la usen editando la correspondiente Configuración del Esquema, y seleccionando la ACL de la lista bajo el bloque "Cache Control Lists".

Si no se personaliza la configuración, se usarán las listas de control de caché por defecto definidas en la página de Ajustes, en la pestaña "Cache Control":
