Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
U koncových bodů REST můžete ovlivnit, jak Tvůrce rozhraní DATA API (DAB) používá interní mezipaměť výsledků dotazu s hlavičkou Cache-Control požadavku.
Důležité
Pokud je ukládání do mezipaměti v konfiguraci modulu runtime zakázané, tyto direktivy se ignorují a dotazy běží normálně.
Podporované Cache-Control hodnoty
| Hodnota | Chování |
|---|---|
no-cache |
Vynutí DAB obejít mezipaměti L1 i L2, načíst nová data z databáze a aktualizovat mezipaměti novým výsledkem. |
no-store |
Říká DAB, aby odpověď neukládala vůbec (neukládá se do L1 nebo L2 a nepokouší se načíst z mezipaměti). |
Chování
- Porovnávání direktiv nerozlišuje malá a velká písmena.
- JAZYK DAB neinterpretuje jiné standardní
Cache-Controldirektivy, jako je max-age nebo max-zastaralé. - Platí jenom pro operace dotazů REST. Nepoužívá se pro direktivy mezipaměti na úrovni požadavků GraphQL.
- Hodnoty hlaviček PROTOKOLU HTTP Cache-Control řídí mezipaměť L1 i L2.
Poznámka:
Jazyk DAB nenastavuje hlavičky odpovědi řízení mezipaměti pro žádnou operaci mezipaměti.
Direktiva: no-cache
Vynutí nové čtení a aktualizuje vrstvy mezipaměti.
Žádost
GET /api/Books
Cache-Control: no-cache
Accept: application/json
Odpověď (příklad)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Efekt: Mezipaměť teď uchovává tento aktuální výsledek (podle nakonfigurované hodnoty TTL).
Direktiva: no-store
Používá existující hodnotu uloženou v mezipaměti, pokud je k dispozici; jinak dotazuje databázi, ale nenaplní (nebo neaktualizuje) mezipaměť novým výsledkem.
Žádost
GET /api/Books
Cache-Control: no-store
Accept: application/json
Odpověď (příklad)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Efekt: Pokud tento výsledek ještě nebyl uložen v mezipaměti, neuloží se. Pozdější only-if-cached požadavek může selhat, pokud se do mezipaměti nenaplní žádný předchozí požadavek.
Review
- Použijte
no-cache, když potřebujete vynutit aktualizaci z databáze a také aktualizovat mezipaměť. - Použijte
no-store, když chcete data, ale nechcete, aby tato odpověď změnila mezipaměť (i když může číst existující hodnotu v mezipaměti). - Vynecháte hlavičku pro normální chování ukládání do mezipaměti.