Dela via


Lagra till cache

GÄLLER FÖR: Alla API Management-nivåer

Principen cache-store cachelagrar svar enligt de angivna cacheinställningarna. Den här principen kan tillämpas i fall där svarsinnehållet förblir statiskt under en tidsperiod. Cachelagring av svar minskar bandbredds- och bearbetningskraven för serverdelswebbservern och minskar fördröjningen som uppfattas av API-konsumenter.

Kommentar

Den här principen måste ha en motsvarande Hämta från cache-princip .

Viktigt!

Den inbyggda cachen är instabil och delas av alla enheter i samma region i samma API Management-tjänst.

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. För att hjälpa dig att konfigurera den här principen tillhandahåller portalen en guidad, formulärbaserad redigerare. Läs mer om hur du anger eller redigerar API Management-principer.

Principuttryck

<cache-store duration="seconds" cache-response="true | false" />

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
varaktighet Time-to-live för de cachelagrade posterna, som anges i sekunder. Principuttryck tillåts. Ja Ej tillämpligt
cache-response Ange till cachelagrat true det aktuella HTTP-svaret. Om attributet utelämnas cachelagras endast HTTP-svar med statuskoden 200 OK . Principuttryck tillåts. Nej false

Förbrukning

Användningsanteckningar

  • API Management cachelagrar endast svar på HTTP GET-begäranden.
  • Den här principen kan bara användas en gång i ett principavsnitt.

Exempel

Exempel med motsvarande cache-lookup-princip

<policies>
    <inbound>
        <base />
        <cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
            <vary-by-query-parameter>version</vary-by-query-parameter>
        </cache-lookup>
    </inbound>
    <outbound>
        <cache-store duration="seconds" />
        <base />
    </outbound>
</policies>

Exempel med principuttryck

Det här exemplet visar hur du konfigurerar cachelagring av API Management-svar som matchar svarscachelagringen för serverdelstjänsten enligt vad som anges i serverdelstjänstens Cache-Control direktiv.

<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->

<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
  <vary-by-header>Accept</vary-by-header>
  <vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>

<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found  -->
<cache-store duration="@{
    var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
    var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
    return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
  }"
 />

Mer information finns i Principuttryck och Kontextvariabel.

Mer information om hur du arbetar med principer finns i: