Megosztás a következőn keresztül:


Cache-Control REST-lekérdezés gyorsítótárazásával

REST-végpontok esetén befolyásolhatja, hogy a Data API Builder (DAB) hogyan használja a belső lekérdezési eredmény gyorsítótárát a Cache-Control kérelem fejlécével.

Fontos

Ha a futtatókörnyezet konfigurációjában a gyorsítótárazás le van tiltva, a rendszer figyelmen kívül hagyja ezeket az irányelveket, és a lekérdezések normálisan futnak.

Támogatott Cache-Control értékek

Érték Magatartás
no-cache A DAB-t arra kényszeríti, hogy az L1 és az L2 gyorsítótárat is megkerülje, friss adatokat hívjon le az adatbázisból, és frissítse a gyorsítótárakat az új eredménnyel.
no-store Arra utasítja a DAB-t, hogy egyáltalán ne gyorsítótárazza a választ (nem L1-ben vagy L2-ben tárolja, és nem kísérli meg lekérni a gyorsítótárból).

Magatartás

  • Az irányelvegyeztetés nem érzéketlen.
  • A DAB nem értelmez más szabványos Cache-Control irányelveket, például a maximális életkort vagy a maximális élettartamot.
  • Csak a REST lekérdezési műveletekre vonatkozik. Nem használható a GraphQL kérésszintű gyorsítótár-irányelveihez.
  • A Cache-Control HTTP-fejlécértékek az L1 és az L2 gyorsítótárat is vezérlik.

Megjegyzés:

A DAB nem állít be gyorsítótár-vezérlési válaszfejléceket a gyorsítótár-műveletekhez.

Irányelv: nincs gyorsítótár

Új olvasást kényszerít ki, és frissíti a gyorsítótárrétegeket.

Kérelem

GET /api/Books
Cache-Control: no-cache
Accept: application/json

Válasz (példa)

HTTP/1.1 200 OK
Content-Type: application/json

[
  { "id": 1, "title": "The Hobbit" },
  { "id": 2, "title": "The Silmarillion" }
]

Effektus: A gyorsítótár most már megtartja ezt a friss eredményt (a konfigurált TTL-nek megfelelően).

Irányelv: nincs tároló

Meglévő gyorsítótárazott értéket használ, ha van ilyen; ellenkező esetben lekérdezi az adatbázist, de nem tölti ki (vagy nem frissíti) a gyorsítótárat az új eredménnyel.

Kérelem

GET /api/Books
Cache-Control: no-store
Accept: application/json

Válasz (példa)

HTTP/1.1 200 OK
Content-Type: application/json

[
  { "id": 1, "title": "The Hobbit" },
  { "id": 2, "title": "The Silmarillion" }
]

Effektus: Ha ez az eredmény még nem lett gyorsítótárazva, akkor az nem lesz tárolva. Egy későbbi only-if-cached kérés meghiúsulhat, ha egy korábbi kérés nem tölti fel a gyorsítótárat.

Felülvizsgálat

  • Akkor használja no-cache , ha frissítenie kell az adatbázist, és frissítenie kell a gyorsítótárat is.
  • Akkor használja no-store , ha az adatokat szeretné, de nem szeretné, hogy ez a válasz módosítsa a gyorsítótárat (bár előfordulhat, hogy egy meglévő gyorsítótárazott értéket olvas).
  • Hagyja ki a fejlécet a normál gyorsítótárazási viselkedéshez.