Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per gli endpoint REST, è possibile influenzare il modo in cui Il generatore di API dati usa la cache dei risultati della query interna con l'intestazione della Cache-Control richiesta.
Importante
Se la memorizzazione nella cache è disabilitata nella configurazione di runtime, queste direttive vengono ignorate e le query vengono eseguite normalmente.
Valori di Cache-Control supportati
| Value | Comportamento |
|---|---|
no-cache |
Forza DAB a ignorare le cache L1 e L2, recuperare i dati aggiornati dal database e aggiornare le cache con il nuovo risultato. |
no-store |
Indica a DAB di non memorizzare nella cache la risposta (non archivia in L1 o L2 e non tenta di recuperare dalla cache). |
Comportamento
- La corrispondenza delle direttive non fa distinzione tra maiuscole e minuscole.
- DAB non interpreta altre direttive standard
Cache-Control, ad esempio max-age o max-stale. - Si applica solo alle operazioni di query REST. Non usato per le direttive cache a livello di richiesta GraphQL.
- I valori dell'intestazione HTTP della richiesta Cache-Control controllano sia la cache L1 che L2.
Annotazioni
DAB non imposta le intestazioni di risposta del controllo cache per qualsiasi operazione della cache.
Direttiva: no-cache
Forza una lettura aggiornata e aggiorna i livelli della cache.
Richiesta
GET /api/Books
Cache-Control: no-cache
Accept: application/json
Risposta (esempio)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Effetto: la cache contiene ora questo nuovo risultato (soggetto al TTL configurato).
Direttiva: no-store
Usa un valore memorizzato nella cache esistente, se presente; in caso contrario, esegue una query sul database ma non popola (o aggiorna) la cache con il nuovo risultato.
Richiesta
GET /api/Books
Cache-Control: no-store
Accept: application/json
Risposta (esempio)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Effetto: se questo risultato non è già stato memorizzato nella cache, non verrà archiviato. Una richiesta successiva only-if-cached potrebbe non riuscire se nessuna richiesta precedente ha popolato la cache.
Review
- Usare
no-cachequando è necessario forzare un aggiornamento dal database e aggiornare anche la cache. - Usare
no-storequando si desidera che i dati ma non si desideri che questa risposta modifichi la cache (anche se potrebbe leggere un valore memorizzato nella cache esistente). - Omettere l'intestazione per il normale comportamento di memorizzazione nella cache.