Compartir vía


Almacenar en caché

SE APLICA A: todos los niveles de API Management

La directiva cache-store almacena en caché las respuestas según la configuración de caché especificada. Esta directiva se puede aplicar en aquellos casos en los que el contenido de respuesta permanezca estático durante un período de tiempo. El almacenamiento en caché de respuesta reduce el ancho de banda y los requisitos de procesamiento impuestos sobre el servidor web de back-end y disminuye la latencia percibida por los consumidores de API.

Nota

Esta directiva debe tener una directiva Get from cache correspondiente.

Importante

La caché integrada es volátil y se comparte entre todas las unidades de la misma región del mismo servicio de API Management.

Nota:

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Para que pueda configurar esta directiva, el portal proporciona un editor guiado basado en formularios. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Instrucción de la directiva

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

Atributos

Atributo Descripción Necesario Valor predeterminado
duration Período de vida de las entradas almacenadas en caché, especificado en segundos. Se permiten expresiones de directiva. N/D
cache-response Establézcalo en true para almacenar en caché la respuesta HTTP actual. Si se omite el atributo, solo se almacenan en caché las respuestas HTTP con el código de estado 200 OK. Se permiten expresiones de directiva. No false

Uso

Notas de uso

  • API Management solo almacena en caché las respuestas a las solicitudes HTTP GET.
  • Esta directiva solo se puede usar una vez en una sección de directiva.

Ejemplos

Ejemplo con la directiva cache-lookup correspondiente

<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>

Ejemplo de uso de expresiones de directiva

En este ejemplo se muestra cómo configurar la duración del almacenamiento en caché de respuesta de API Management para que coincida con el almacenamiento en caché de respuesta del servicio de back-end especificado por la directiva Cache-Control del servicio de back-end.

<!-- 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;
  }"
 />

Para obtener más información, consulte Policy expressions (Expresiones de política) y Context variable (Variable de contexto).

Para más información sobre el trabajo con directivas, vea: