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. | Sí | 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
- Secciones de la directiva: saliente
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
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).
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure