Obtention à partir du cache
S’APPLIQUE À : tous les niveaux de Gestion des API
Utilisez la stratégie cache-lookup
pour effectuer une recherche dans le cache et renvoyer une réponse mise en cache valide si elle est disponible. Cette stratégie peut être appliquée dans les cas où le contenu de la réponse reste statique pendant un certain temps. La mise en cache de la réponse réduit les besoins en bande passante et en calcul imposés par le serveur web principal et limite la latence perçue par les consommateurs de l’API.
Notes
Cette stratégie doit avoir une stratégie Store to cache correspondante.
Important
Le cache intégré est volatile et partagé par toutes les unités de la même région dans le même service de gestion des API.
Notes
Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. Pour vous aider à configurer cette stratégie, le portail fournit un éditeur guidé basé sur des formulaires. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.
Instruction de la stratégie
<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" caching-type="prefer-external | external | internal" downstream-caching-type="none | private | public" must-revalidate="true | false" allow-private-response-caching="@(expression to evaluate)">
<vary-by-header>Accept</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Accept-Charset</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Authorization</vary-by-header>
<!-- should be present when allow-private-response-caching is "true"-->
<vary-by-header>header name</vary-by-header>
<!-- optional, can be repeated -->
<vary-by-query-parameter>parameter name</vary-by-query-parameter>
<!-- optional, can be repeated -->
</cache-lookup>
Attributs
Attribut | Description | Obligatoire | Default |
---|---|---|---|
allow-private-response-caching | Lorsque l’attribut est défini sur true , permet la mise en cache des requêtes qui contiennent un en-tête d’autorisation. Les expressions de stratégie sont autorisées. |
Non | false |
caching-type | Choisissez entre les valeurs suivantes de l’attribut : - internal pour utiliser le cache Gestion des API intégré,- external pour utiliser le cache externe (voir - ,- prefer-external pour utiliser un cache externe (si configuré) ou un cache interne sinon.Les expressions de stratégie ne sont pas autorisées. |
Non | prefer-external |
downstream-caching-type | Cet attribut doit avoir l’une des valeurs suivantes. - none : la mise en cache en aval n’est pas autorisée. - private : la mise en cache privée en aval est autorisée. - public : la mise en cache privée et partagée en aval est autorisée. Les expressions de stratégie sont autorisées. |
Non | Aucun |
must-revalidate | Lorsque la mise en cache en aval est activée, cet attribut active ou désactive la directive de contrôle de cache must-revalidate dans les réponses de la passerelle. Les expressions de stratégie sont autorisées. |
Non | true |
vary-by-developer | Définissez la valeur true pour mettre en cache les réponses par compte de développeur possédant une true incluse dans la demande. Les expressions de stratégie sont autorisées. |
Oui | false |
vary-by-developer-groups | Attribut défini sur true pour mettre en cache des réponses par true . Les expressions de stratégie sont autorisées. |
Oui | false |
Éléments
Nom | Description | Obligatoire |
---|---|---|
vary-by-header | Ajoutez un ou plusieurs de ces éléments pour commencer à mettre en cache les réponses par valeur d’en-tête spécifié, par exemple, Accept , Accept-Charset , Accept-Encoding , Accept-Language , Authorization , Expect , From , Host ou If-Match . |
Non |
vary-by-query-parameter | Ajoutez un ou plusieurs de ces éléments pour commencer à mettre en cache les réponses par valeur de paramètre de requête spécifié. Entrez un ou plusieurs paramètres. Utilisez un point-virgule comme séparateur. | Non |
Usage
- Sections de la stratégie : inbound
- Étendues de la stratégie : global, espace de travail, produit, API, opération
- Passerelles : classiques, v2, consommation, auto-hébergées, espace de travail
Notes d’utilisation
- Gestion des API effectue uniquement une recherche de cache pour les requêtes HTTP GET.
- Lorsque vous utilisez
vary-by-query-parameter
, vous pouvez déclarer les paramètres dans le modèle rewrite-uri ou affecter à l’attributcopy-unmatched-params
la valeurfalse
. En désactivant cet indicateur, les paramètres qui ne sont pas déclarés sont envoyés au back-end.
- Cette stratégie ne peut être employée qu’une seule fois dans une section de stratégie.
Exemples
Exemple avec la stratégie cache-store correspondante
<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>
Exemple utilisant des expressions de stratégie
Cet exemple montre comment configurer la durée de mise en cache des réponses de Gestion des API qui correspond à la mise en cache de la réponse du service principal, comme spécifié par la directive Cache-Control
du service principal.
<!-- 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;
}"
/>
Pour plus d’informations, consultez les pages Expressions de stratégie et Variable de contexte.
Stratégies connexes
Contenu connexe
Pour plus d’informations sur l’utilisation des stratégies, consultez :
- Tutoriel : Transformer et protéger votre API
- Référence de stratégie pour obtenir la liste complète des instructions et des paramètres de stratégie
- Expressions de stratégie
- Définir ou modifier des stratégies
- Réutilisation de configurations de stratégie
- Référentiel d’extrait de stratégie
- Créer des stratégies à l’aide de Microsoft Copilot dans Azure