Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W przypadku punktów końcowych REST możesz wpływać na sposób, w jaki konstruktor interfejsu API danych (DAB) używa wewnętrznej pamięci podręcznej wyników zapytania z nagłówkiem Cache-Control żądania.
Ważne
Jeśli buforowanie jest wyłączone w konfiguracji środowiska uruchomieniowego, te dyrektywy są ignorowane i zapytania są uruchamiane normalnie.
Obsługiwane wartości Cache-Control
| Wartość | Zachowanie |
|---|---|
no-cache |
Wymusza daB obejście pamięci podręcznych L1 i L2, pobranie nowych danych z bazy danych i zaktualizowanie pamięci podręcznych przy użyciu nowego wyniku. |
no-store |
Informuje daB, aby nie buforować odpowiedzi w ogóle (nie przechowuje w L1 lub L2 i nie próbuje pobrać z pamięci podręcznej). |
Zachowanie
- Dopasowanie dyrektywy jest bez uwzględniania wielkości liter.
- Język DAB nie interpretuje innych
Cache-Controlstandardowych dyrektyw, takich jak max-age lub max-stale. - Dotyczy tylko operacji zapytań REST. Nie jest używany w przypadku dyrektyw pamięci podręcznej na poziomie żądania programu GraphQL.
- Cache-Control żądaj wartości nagłówka HTTP kontrolują zarówno pamięć podręczną L1, jak i L2.
Uwaga / Notatka
Język DAB nie ustawia nagłówków odpowiedzi kontroli pamięci podręcznej dla żadnej operacji pamięci podręcznej.
Dyrektywa: brak pamięci podręcznej
Wymusza nowy odczyt i aktualizuje warstwy pamięci podręcznej.
Żądanie
GET /api/Books
Cache-Control: no-cache
Accept: application/json
Odpowiedź (przykład)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Efekt: pamięć podręczna przechowuje teraz ten świeży wynik (z zastrzeżeniem skonfigurowanego czasu wygaśnięcia).
Dyrektywa: brak sklepu
Używa istniejącej wartości buforowanej, jeśli istnieje; w przeciwnym razie wysyła zapytanie do bazy danych, ale nie wypełnia (lub odświeża) pamięci podręcznej nowym wynikiem.
Żądanie
GET /api/Books
Cache-Control: no-store
Accept: application/json
Odpowiedź (przykład)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Efekt: Jeśli ten wynik nie został jeszcze zapisany w pamięci podręcznej, nie będzie on przechowywany.
only-if-cached Późniejsze żądanie może zakończyć się niepowodzeniem, jeśli wcześniejsze żądanie nie wypełniło pamięci podręcznej.
Wykonaj przegląd
- Użyj
no-cachepolecenia , gdy musisz wymusić odświeżenie z bazy danych, a także zaktualizować pamięć podręczną. - Użyj
no-storepolecenia , jeśli chcesz, aby dane, ale nie chcesz, aby ta odpowiedź zmieniła pamięć podręczną (chociaż może ona odczytywać istniejącą wartość z pamięci podręcznej). - Pomiń nagłówek dla normalnego zachowania buforowania.