Cache de respostas

A API GraphQL pública guarda em cache as respostas resolvidas por padrão. Quando um registro é gravado, as respostas em cache que o referenciavam são descartadas.

Ativado por padrão, por 60 segundos

Todo modelo que guarda registros usa cache por 60 segundos. Uma repetição da mesma consulta dentro desse período devolve a resposta armazenada sem resolvê-la de novo. Modelos comuns compartilham uma entrada entre chamadores que enviam a mesma consulta. Modelos cujos registros têm dono são armazenados em cache por dono.

Invalidação após uma escrita

Criar, atualizar, excluir, publicar ou despublicar um registro descarta toda resposta em cache que o referenciava. Uma resposta de lista é descartada quando qualquer registro da lista é editado, e modelos não relacionados ficam intactos. A invalidação roda depois que a escrita é confirmada, então por alguns milissegundos uma leitura ainda pode receber a resposta anterior. O período de vida é a rede de segurança caso uma invalidação se perca, e se o armazenamento do cache estiver inacessível a escrita ainda é confirmada e a próxima leitura é resolvida normalmente.

Ajustes e como desativar

O período e o escopo são definidos por modelo, no console ou no seu arquivo de config em cacheControl, e um modelo pode desativar o cache por completo. Uma única requisição pode forçar uma leitura nova com um cabeçalho no-cache. Mutations e leituras de rascunho nunca são colocadas em cache.

Lendo a sua própria escrita

Uma resposta de mutation inclui o X-Foir-Write-Token como cabeçalho. Envie-o na leitura seguinte e o servidor só serve uma entrada em cache se ela for pelo menos tão recente quanto aquela escrita.

Purge manual

Para mudanças que o caminho de escrita não enxerga, foir cache purge limpa um registro, um modelo ou tudo. Uma mutation de refresh cobre um único registro cujo conteúdo mudou em outro sistema.

Leia os detalhes

O guia de cache cobre escopos de cache, configurações por modelo, cabeçalhos de requisição e o endpoint compartilhado para CDNs.