Criterio ResponseCache

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

icona delle norme

Questa norma memorizza nella cache i dati di una risorsa di backend, riducendo il numero di richieste alla risorsa. Quando le app inviano richieste allo stesso URI, puoi utilizzare questo criterio per restituire risposte memorizzate nella cache anziché inoltrare le richieste al server di backend. Il criterio ResponseCache può migliorare le prestazioni della tua API riducendo la latenza e il traffico di rete.

Queste norme sono estensibili e il loro utilizzo potrebbe avere implicazioni in termini di costi o di utilizzo, a seconda della licenza Apigee. Per informazioni sui tipi di criteri e sulle implicazioni di utilizzo, consulta Tipi di criteri.

Probabilmente troverai ResponseCache più utile quando i dati di backend utilizzati dall'API vengono aggiornati solo periodicamente. Ad esempio, supponiamo di avere un'API che espone i dati dei bollettini meteo aggiornati solo ogni dieci minuti. Utilizzando ResponseCache per restituire le risposte memorizzate nella cache tra gli aggiornamenti, puoi ridurre il numero di richieste che raggiungono il backend. In questo modo si riduce anche il numero di hop di rete.

Per la memorizzazione nella cache a breve termine per uso generico, valuta la possibilità di utilizzare il criterio PopulateCache. Questo criterio viene utilizzato insieme al criterio LookupCache (per la lettura delle voci della cache) e al criterio InvalidateCache (per l'invalidazione delle voci).

Guarda il seguente video per un'introduzione alle norme relative alla cache delle risposte.

Esempi

Cache di 10 minuti

Questo esempio mostra come mantenere le risposte memorizzate nella cache per 10 minuti.

Immagina di avere un'API al seguente URL:

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Stai utilizzando il parametro di query w come chiave cache. Apigee verifica il valore del parametro di query w ogni volta che viene ricevuta una richiesta. Se nella cache è presente una risposta valida (ovvero non scaduta), il messaggio di risposta memorizzato nella cache viene restituito al client richiedente.

Ora immagina di aver configurato una policy ResponseCache come segue.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

La prima volta che il proxy API riceve un messaggio di richiesta per il seguente URL, la risposta viene memorizzata nella cache. Nella seconda richiesta entro 10 minuti, viene eseguita una ricerca nella cache e la risposta memorizzata nella cache viene restituita all'app senza che la richiesta venga inoltrata al servizio di backend.

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Salta la ricerca nella cache

Il seguente esempio mostra come ignorare la ricerca nella cache e aggiornarla. Vedi anche questo video sull'utilizzo di SkipCacheLookup.

La condizione facoltativa SkipCacheLookup (se configurata) viene valutata nel percorso della richiesta. Se la condizione restituisce il valore true, la ricerca nella cache viene ignorata e la cache viene aggiornata.

Un utilizzo comune dell'aggiornamento condizionale della cache è una condizione che definisce un'intestazione HTTP specifica che fa sì che la condizione venga valutata come vera. Un'applicazione client basata su script potrebbe essere configurata per inviare periodicamente una richiesta con l'intestazione HTTP appropriata, causando esplicitamente l'aggiornamento della cache delle risposte.

Ad esempio, immagina una chiamata a un'API al seguente URL:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

Ora immagina la seguente norma ResponseCache configurata su questo proxy. Tieni presente che la condizione bypass-cache è impostata su true.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <!-- Explicitly refresh the cached response -->
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

Per ulteriori informazioni sulle condizioni, consulta la sezione Variabili e condizioni del flusso.

Riferimento elemento

Il riferimento all'elemento descrive gli elementi e gli attributi delle norme.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" />
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds>
    </ExpirySettings>
    <CacheResource>cache_to_use</CacheResource>
    <CacheLookupTimeoutInSeconds/>
    <ExcludeErrorResponse/>
    <SkipCacheLookup/>
    <SkipCachePopulation/>
    <UseAcceptHeader/>
    <UseResponseCacheHeaders/>
</ResponseCache>

Attributi <ResponseCache>

<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">

La tabella seguente descrive gli attributi comuni a tutti gli elementi principali dei criteri:

Attributo Descrizione Predefinito Presence
name

Il nome interno del criterio. Il valore dell'attributo name può contenere lettere, numeri, spazi, trattini, trattini bassi e punti. Questo valore non può superare i 255 caratteri.

Se vuoi, utilizza l'elemento <DisplayName> per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso in linguaggio naturale.

N/D Obbligatorio
continueOnError

Imposta su false per restituire un errore quando un criterio non va a buon fine. Questo è un comportamento previsto per la maggior parte dei criteri.

Imposta su true per continuare l'esecuzione del flusso anche dopo un fallimento del criterio. Vedi anche:

falso Facoltativo
enabled

Imposta su true per applicare il criterio.

Imposta su false per disattivare il criterio. Il criterio non verrà applicato anche se rimane collegato a un flusso.

true Facoltativo
async

Questo attributo è stato ritirato.

falso Deprecato

Elemento <DisplayName>

Da utilizzare insieme all'attributo name per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso in linguaggio naturale.

<DisplayName>Policy Display Name</DisplayName>
Predefinito

N/D

Se ometti questo elemento, viene utilizzato il valore dell'attributo name del criterio.

Presence Facoltativo
Tipo Stringa

Elemento <CacheKey>

Configura un puntatore univoco a un insieme di dati memorizzati nella cache.

Le chiavi della cache sono limitate a una dimensione di 2 KB.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Predefinito:

N/D

Presenza:

Obbligatorio

Tipo:

N/D

<CacheKey> crea il nome di ogni dato memorizzato nella cache. La chiave viene spesso impostata utilizzando un valore delle intestazioni delle entità o dei parametri di query. In questi casi, l'attributo ref dell'elemento specifica una variabile contenente il valore della chiave.

In fase di runtime, i valori di <KeyFragment> vengono anteposti al valore dell'elemento <Scope> o al valore di <Prefix>. Ad esempio, i seguenti generano una chiave della cache UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Utilizzi l'elemento <CacheKey> in combinazione con <Prefix> e <Scope>. Per maggiori informazioni, consulta Utilizzo delle chiavi della cache.

Elemento <CacheLookupTimeoutInSeconds>

Specifica il numero di secondi dopo i quali una ricerca nella cache senza esito positivo verrà considerata un fallimento della cache. In questo caso, il flusso riprende lungo il percorso di mancato riscontro nella cache.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Predefinito:

30

Presenza:

Facoltativo

Tipo:

Numero intero

Elemento <CacheResource>

Specifica la cache in cui devono essere archiviati i messaggi. Ometti questo elemento per utilizzare la cache condivisa inclusa. Devi specificare un CacheResource per nome se vuoi poter cancellare amministrativamente le voci contenute nella cache. Per saperne di più, consulta l'API Caches.

<CacheResource>cache_to_use</CacheResource>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Elemento <CacheKey>/<KeyFragment>

Specifica un valore da includere nella chiave cache, creando uno spazio dei nomi per la corrispondenza tra le richieste e le risposte memorizzate nella cache.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

N/D

Può trattarsi di una chiave (un nome statico che fornisci) o di un valore (una voce dinamica impostata facendo riferimento a una variabile). Tutti i frammenti specificati combinati (più il prefisso) vengono concatenati per creare la chiave della cache.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

Utilizzi l'elemento <KeyFragment> in combinazione con <Prefix> e <Scope>. Per maggiori informazioni, consulta Utilizzo delle chiavi della cache.

Attributi

Attributo Tipo Predefinito Obbligatorio Descrizione
ref string No

La variabile da cui ottenere il valore. Non deve essere utilizzato se questo elemento contiene un valore letterale.

Elemento <CacheKey>/<Prefix>

Specifica un valore da utilizzare come prefisso della chiave cache.

<Prefix>prefix_string</Prefix>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Utilizza questo valore anziché <Scope> quando vuoi specificare un valore personalizzato anziché un valore enumerato <Scope>. Se definito, <Prefix> antepone il valore della chiave della cache alle voci scritte nella cache. Un valore dell'elemento <Prefix> sostituisce un valore dell'elemento <Scope>.

Utilizzi l'elemento <Prefix> in combinazione con <CacheKey> e <Scope>. Per maggiori informazioni, consulta Utilizzo delle chiavi della cache.

Elemento <ExcludeErrorResponse>

Questa norma può memorizzare nella cache le risposte HTTP con qualsiasi codice di stato. Ciò significa che sia le risposte di successo che quelle di errore possono essere memorizzate nella cache, inclusi i codici di stato 2xx e 3xx.

Imposta questo elemento su true (impostazione predefinita) per escludere le risposte di errore. Impostalo su false se non vuoi escludere le risposte della destinazione della cache con codici di stato di errore HTTP.

Per una discussione sui pattern della cache delle risposte in cui questo elemento è utile, vedi Introduzione agli antipattern.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

Predefinito:

true

Presenza:

Facoltativo

Tipo:

Booleano

Elemento <ExpirySettings>

Specifica la scadenza di una voce della cache. Se presente, <TimeoutInSeconds> ha la precedenza su <TimeOfDay> e <ExpiryDate>.

<ExpirySettings>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
</ExpirySettings>

Predefinito:

N/D

Presenza:

Obbligatorio

Tipo:

N/D

<ExpirySettings>/<ExpiryDate> element

Specifica la data di scadenza di una voce della cache. Utilizza il modulo mm-dd-yyyy. Se presente, l'elemento di pari livello <TimeoutInSeconds> di questo elemento esegue l'override di <ExpiryDate>.

<ExpirySettings>
    <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate>
</ExpirySettings>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

<ExpiryDate ref="" />
Attributo Descrizione Predefinito Presenza Tipo
ref

La variabile da cui ottenere il valore. Non deve essere utilizzato se questo elemento contiene un valore letterale.

N/D Facoltativo Stringa

Elemento <ExpirySettings>/<TimeOfDay>

L'ora del giorno in cui una voce della cache deve scadere. Utilizza il modulo hh:mm:ss . Se presente, l'elemento di pari livello <TimeoutInSeconds> di questo elemento esegue l'override di <TimeOfDay>.

Inserisci l'ora del giorno nel formato HH:mm:ss, dove HH rappresenta l'ora in un orologio a 24 ore. Ad esempio, 14:30:00 per le 14:30.

Per l'ora del giorno, le impostazioni internazionali e il fuso orario predefiniti variano a seconda di dove viene eseguito il codice (che non è noto quando configuri il criterio).

<ExpirySettings>
    <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

Attributo Descrizione Predefinito Presenza Tipo
ref Variabile con il valore del tempo di scadenza. N/D Facoltativo Stringa

Elemento <ExpirySettings>/<TimeoutInSec>

Il numero di secondi dopo i quali una voce della cache deve scadere.

Elemento <ExpirySettings>/<TimeoutInSeconds>

Il numero di secondi dopo i quali una voce della cache deve scadere. Se presente, questo elemento sovrascrive i relativi elementi di pari livello, <TimeOfDay> e <ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

Attributo Descrizione Predefinito Presenza Tipo
ref Variabile con il valore di timeout.
N/D
Facoltativo Stringa

Elemento <Scope>

Enumerazione utilizzata per creare un prefisso per una chiave della cache quando un elemento <Prefix> non viene fornito nell'elemento <CacheKey>.

<Scope>scope_enumeration</Scope>

Predefinito:

"Esclusiva"

Presenza:

Facoltativo

Tipo:

Stringa

L'impostazione <Scope> determina una chiave della cache anteposta in base al valore <Scope>. Ad esempio, una chiave della cache assume il seguente formato quando l'ambito è impostato su Exclusive: orgName__envName__apiProxyName__proxy|TargetName__ [ serializedCacheKey ].

Se in <CacheKey> è presente un elemento <Prefix>, questo ha la precedenza su un valore dell'elemento <Scope>. I valori validi includono le enumerazioni di seguito.

Utilizzi l'elemento <Scope> in combinazione con <CacheKey> e <Prefix>. Per maggiori informazioni, consulta Utilizzo delle chiavi della cache.

Valori accettabili

Valore dell'ambito Descrizione
Global

La chiave della cache è condivisa tra tutti i proxy API di cui è stato eseguito il deployment nell'ambiente. La chiave della cache viene anteposta nel formato orgName __ envName __.

Se definisci una voce <CacheKey> con <KeyFragment> apiAccessToken e un ambito <Global>, ogni voce viene memorizzata come orgName__envName__apiAccessToken, seguito dal valore serializzato del token di accesso. Per un proxy API di cui è stato eseguito il deployment in un ambiente denominato "test" in un'organizzazione denominata "apifactory", i token di accesso verranno archiviati nella seguente chiave della cache: apifactory__test__apiAccessToken.

Application

Il nome del proxy API viene utilizzato come prefisso.

La chiave della cache viene anteposta nel formato orgName__envName__apiProxyName.

Proxy

La configurazione ProxyEndpoint viene utilizzata come prefisso.

La chiave della cache viene anteposta nel formato orgName__envName__apiProxyName__proxyEndpointName .

Target

La configurazione TargetEndpoint viene utilizzata come prefisso.

Chiave della cache anteposta nel formato orgName__envName__apiProxyName__targetEndpointName .

Exclusive

Valore predefinito. Questo è il più specifico e quindi presenta un rischio minimo di collisioni di spazi dei nomi all'interno di una determinata cache.

Il prefisso può avere due forme:

  • Se il criterio è collegato al flusso ProxyEndpoint, il prefisso ha la forma ApiProxyName_ProxyEndpointName.
  • Se il criterio è collegato a TargetEndpoint, il prefisso ha il formato ApiProxyName_TargetName.

Chiave della cache anteposta nel modulo orgName__envName__apiProxyName__proxyNameITargetName

Ad esempio, la stringa completa potrebbe avere il seguente aspetto:

apifactory__test__weatherapi__default__apiAccessToken
.

Elemento <SkipCacheLookup>

Definisce un'espressione che, se restituisce true in fase di runtime, specifica che la ricerca nella cache deve essere ignorata e la cache deve essere aggiornata. Vedi anche Video sull'utilizzo delle norme ResponseCache sull'utilizzo di SkipCacheLookup.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Dall'esempio seguente, se la variabile bypass-cache è impostata su true in un'intestazione in entrata, la ricerca nella cache viene ignorata e la cache viene aggiornata.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

Elemento <SkipCachePopulation>

Definisce un'espressione che, se restituisce true in fase di runtime, specifica che una scrittura nella cache deve essere ignorata. Guarda anche questo video sull'utilizzo di SkipCachePopulation.

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

Predefinito:

N/D

Presenza:

Facoltativo

Tipo:

Stringa

Ad esempio, il seguente codice salterebbe la scrittura della cache se il codice di stato della risposta fosse 400 o superiore:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

Elemento <UseAcceptHeader>

Imposta su true per aggiungere alla chiave della cache di una voce della cache di risposta i valori delle intestazioni Accept della risposta.

Apigee utilizza le intestazioni delle richieste Accept, Accept-Encoding, Accept-Language e Accept-Charset durante il calcolo della chiave della cache. Questo approccio impedisce a un client di ottenere un tipo di media che non ha richiesto.

Ad esempio, considera il caso in cui arrivano due richieste dallo stesso URL, dove la prima richiesta accetta gzip e la seconda no. La prima richiesta verrà memorizzata nella cache e la voce memorizzata nella cache (probabilmente) sarà una risposta compressa con gzip. La seconda richiesta leggerà il valore memorizzato nella cache e potrebbe quindi restituire una voce compressa con gzip a un client che non è in grado di leggere gzip.

Per saperne di più, consulta Configurazione di una chiave della cache.

<UseAcceptHeader>false</UseAcceptHeader>

Predefinito:

falso

Presenza:

Facoltativo

Tipo:

Booleano

Elemento <UseResponseCacheHeaders>

Imposta true per considerare le intestazioni di risposta HTTP quando imposti la durata (TTL) della risposta nella cache. Se questo valore è true, Apigee considera i valori delle seguenti intestazioni di risposta, confrontandoli con quelli impostati da <ExpirySettings> quando imposta il time to live:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

Per ulteriori dettagli, consulta la sezione Impostare la scadenza delle voci della cache.

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

Predefinito:

falso

Presenza:

Facoltativo

Tipo:

Booleano

Note sull'utilizzo

La dimensione massima di ogni oggetto memorizzato nella cache è 256 kB. (Per informazioni dettagliate su come Apigee elabora la cache, vedi Elementi interni della cache.)

Tramite la configurazione nella policy ResponseCache, puoi fare in modo che Apigee includa le intestazioni della risposta HTTP nell'impostazione della scadenza delle voci della cache e delle chiavi della cache. Questa sezione descrive come utilizzare i criteri con le intestazioni per gestire la scadenza della cache e le chiavi della cache.

Per saperne di più su come Apigee gestisce le intestazioni delle risposte con il criterio ResponseCache, consulta Supporto per le intestazioni della risposta HTTP.

Impostazione della scadenza delle voci della cache

Come per il criterio PopolateCache, puoi impostare la scadenza di una voce della cache delle risposte (il relativo tempo di permanenza) utilizzando l'elemento <ExpirySettings>. Nella norma ResponseCache, puoi anche fare in modo che Apigee prenda in considerazione le intestazioni della risposta quando sono presenti.

Per utilizzare le intestazioni di risposta, imposta il valore dell'elemento <UseResponseCacheHeaders> su true. Questa impostazione fa sì che Apigee prenda in considerazione le intestazioni della risposta, le confronti con il valore impostato da <ExpirySettings> e utilizzi il valore più basso tra i due. Quando considera le intestazioni della risposta, Apigee sceglie il valore disponibile come descritto di seguito:

Diagramma che mostra cosa succede quando imposti UseResponseCacheHeaders su true.

Ad esempio, supponiamo che una risposta venga memorizzata nella cache con i seguenti valori:

  • Nessun valore Cache-Control s-maxage
  • Un valore Cache-Control max-age di 300
  • Una data Expires tra tre giorni
  • Un valore <ExpirySettings> TimeoutInSeconds di 600.

In questo caso, il valore Cache-Control max-age verrà utilizzato per il TTL perché è inferiore al valore <ExpirySettings> e perché non è presente alcun valore Cache-Control s-maxage (che ha la precedenza su max-age).

Configurazione di una chiave della cache

Come per le norme di memorizzazione nella cache per uso generico, ad esempio la norma PopulateCache, con ResponseCache utilizzi gli elementi <CacheKey> e <Scope> per configurare la creazione delle chiavi della cache per le voci della cache. Con ResponseCache puoi anche rendere le chiavi della cache più significative aggiungendo le intestazioni Accept della risposta ai valori delle chiavi.

Per informazioni generali sulla configurazione delle chiavi di cache, consulta Utilizzo delle chiavi di cache. Per informazioni sull'utilizzo delle intestazioni Accept, vedi <UseAcceptHeader>.

Informazioni sulla crittografia della cache

Apigee e Apigee hybrid (versione 1.4 e successive): i dati di cache e KVM sono sempre criptati.

Variabili di flusso

Le seguenti variabili di flusso predefinite vengono compilate quando viene eseguita una norma ResponseCache. Per ulteriori informazioni sulle variabili di flusso, consulta Riferimento alle variabili di flusso.

Variabili Tipo Autorizzazione Descrizione
responsecache.{policy_name}.cachename Stringa Sola lettura Restituisce la cache utilizzata nella policy
responsecache.{policy_name}.cachekey Stringa Sola lettura Restituisce la chiave utilizzata
responsecache.{policy_name}.cachehit Booleano Sola lettura Vero se l'esecuzione del criterio è riuscita
responsecache.{policy_name}.invalidentry Booleano Sola lettura Vero se la voce della cache non è valida

Codici di errore

Questa sezione descrive i messaggi di errore e le variabili di flusso impostate quando questo criterio attiva un errore. Queste informazioni sono importanti se stai sviluppando regole di errore per un proxy. Per scoprire di più, consulta Informazioni importanti sugli errori relativi alle norme e Gestione degli errori.

Prefisso del codice di errore

N/D

Errori di runtime

Questo criterio non genera errori di runtime.

Errori di deployment

Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.

Nome dell'errore Causa Correggi
InvalidTimeout Se l'elemento <CacheLookupTimeoutInSeconds> del criterio ResponseCache è impostato su un numero negativo, il deployment del proxy API non va a buon fine.
InvalidCacheResourceReference Questo errore si verifica se l'elemento <CacheResource> in un criterio ResponseCache è impostato su un nome che non esiste nell'ambiente in cui viene eseguito il deployment del proxy API.
ResponseCacheStepAttachmentNotAllowedReq Questo errore si verifica se lo stesso criterio ResponseCache è associato a più percorsi di richiesta all'interno di qualsiasi flusso di un proxy API.
ResponseCacheStepAttachmentNotAllowedResp Questo errore si verifica se lo stesso criterio ResponseCache è associato a più percorsi di risposta all'interno di qualsiasi flusso di un proxy API.
InvalidMessagePatternForErrorCode Questo errore si verifica se l'elemento <SkipCacheLookup> o <SkipCachePopulation> in un criterio ResponseCache contiene una condizione non valida.
CacheNotFound Questo errore si verifica se la cache specifica indicata nel messaggio di errore non è stata creata su un componente di elaborazione dei messaggi specifico.

Variabili di errore

N/D

Esempio di risposta di errore

N/D

Schema

Ogni tipo di policy è definito da uno schema XML (.xsd). Per riferimento, gli schemi delle policy sono disponibili su GitHub.