Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voor REST-eindpunten kunt u beïnvloeden hoe Data API Builder (DAB) de interne cache voor queryresultaten gebruikt met de Cache-Control aanvraagheader.
Belangrijk
Als caching is uitgeschakeld in de runtimeconfiguratie, worden deze instructies genegeerd en worden query's normaal uitgevoerd.
Ondersteunde Cache-Control waarden
| Waarde | Gedrag |
|---|---|
no-cache |
Dwingt DAB af om zowel L1- als L2-caches te omzeilen, nieuwe gegevens op te halen uit de database en de caches bij te werken met het nieuwe resultaat. |
no-store |
Hiermee wordt aangegeven dat DAB het antwoord helemaal niet in de cache moet opslaan (wordt niet opgeslagen in L1 of L2 en probeert het niet op te halen uit de cache). |
Gedrag
- Richtlijnkoppeling is niet hoofdlettergevoelig.
- DAB interpreteert geen andere standaardrichtlijnen
Cache-Control, zoals max-age of max-verouderde. - Is alleen van toepassing op REST-querybewerkingen. Niet gebruikt voor cacherichtlijnen op aanvraagniveau van GraphQL.
- De Cache-Control HTTP-headerwaarden aanvragen bepalen zowel L1- als L2-cache.
Opmerking
DAB stelt geen antwoordheaders voor cachebeheer in voor een cachebewerking.
Instructie: geen cache
Hiermee dwingt u een nieuwe lees- en update van de cachelagen.
Aanvraag
GET /api/Books
Cache-Control: no-cache
Accept: application/json
Antwoord (voorbeeld)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Effect: Cache bevat nu dit nieuwe resultaat (onderhevig aan geconfigureerde TTL).
Richtlijn: no-store
Maakt gebruik van een bestaande waarde in de cache indien aanwezig; anders wordt een query uitgevoerd op de database, maar wordt de cache niet gevuld (of vernieuwd) met het nieuwe resultaat.
Aanvraag
GET /api/Books
Cache-Control: no-store
Accept: application/json
Antwoord (voorbeeld)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Effect: Als dit resultaat nog niet in de cache is opgeslagen, wordt het niet opgeslagen. Een latere only-if-cached aanvraag kan mislukken als er geen eerdere aanvraag de cache heeft ingevuld.
Review
- Gebruik
no-cachedeze opdracht wanneer u een vernieuwing van de database moet afdwingen en ook de cache moet bijwerken. - Gebruik
no-storedeze optie als u de gegevens wilt gebruiken, maar niet wilt dat deze reactie de cache wijzigt (hoewel deze een bestaande waarde in de cache kan lezen). - Laat de header weg voor normaal cachinggedrag.