Criterio ResponseCache

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

icona delle norme

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

Questo criterio è un criterio estendibile e il suo utilizzo potrebbe avere implicazioni in termini di costi o utilizzo, a seconda della licenza Apigee. Per informazioni sui tipi di criteri e sulle implicazioni di utilizzo, consulta Tipi di criteri.

Probabilmente troverai che ResponseCache è più utile quando i dati del backend utilizzati dall'API vengono aggiornati solo periodicamente. Ad esempio, immagina di avere un'API che espone i dati del bollettino meteo aggiornati solo ogni dieci minuti. Utilizzando ResponseCache per restituire le risposte memorizzate nella cache tra un aggiornamento e l'altro, puoi ridurre il numero di richieste che raggiungono il backend. In questo modo ridurrai anche il numero di hop di rete.

Per la memorizzazione nella cache a breve termine per uso generico, ti consigliamo di utilizzare il criterio PopulateCache. Questo criterio viene utilizzato in combinazione con il criterio LookupCache (per la lettura delle voci della cache) e il criterio InvalidateCache (per l'annullamento della convalida delle voci).

Guarda il video che segue per un'introduzione al criterio della cache di risposta.

Esempi

Cache di 10 minuti

Questo esempio mostra come conservare 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 controlla 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 avere un criterio ResponseCache configurato 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 l'URL seguente, la risposta viene memorizzata nella cache. Alla seconda richiesta entro 10 minuti, viene eseguita una ricerca nella cache: la risposta memorizzata nella cache viene restituita all'app, senza che alcuna richiesta venga inoltrata al servizio di backend.

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

Ignora ricerca cache

L'esempio seguente mostra come saltare la ricerca della cache e come aggiornarla. Consulta anche questo video sull'utilizzo di SkipCacheLookup.

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

Un uso comune dell'aggiornamento condizionale della cache è una condizione che definisce un'intestazione HTTP specifica in modo che la condizione restituisca true. Un'applicazione client basata su script può essere configurata per inviare periodicamente una richiesta con l'intestazione HTTP appropriata, causando in modo esplicito 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 il seguente criterio ResponseCache configurato su quel proxy. Tieni presente che la condizione di 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 di flusso.

Riferimento elemento

Il riferimento agli elementi descrive gli elementi e gli attributi del criterio.

<?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 Presenza
name

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

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

N/A Obbligatorio
continueOnError

Impostalo su false per restituire un errore in caso di errore di un criterio. Questo è il comportamento previsto per la maggior parte dei criteri.

Imposta su true per fare in modo che l'esecuzione del flusso continui anche in caso di errore di un criterio. Vedi anche:

false Facoltativo
enabled

Imposta il criterio su true per applicare il criterio.

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

true Facoltativo
async

Questo attributo è obsoleto.

false Deprecata

Elemento <DisplayName>

Utilizzalo in aggiunta 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/A

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

Presenza Facoltativo
Tipo Stringa

Elemento <CacheKey>

Configura un puntatore univoco a un dato memorizzato nella cache.

La dimensione delle chiavi cache non può essere superiore a 2 kB.

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

Predefinita:

N/A

Presenza:

Obbligatorio

Tipo:

N/A

<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 deve specificare una variabile contenente il valore della chiave.

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

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

Utilizza l'elemento <CacheKey> in combinazione con <Prefix> e <Scope>. Per ulteriori informazioni, consulta l'argomento Utilizzo delle chiavi cache.

Elemento <CacheLookupTimeoutInSecond>

Specifica il numero di secondi dopo i quali una ricerca di cache non riuscita verrà considerata fallimento della cache. In questo caso, il flusso riprende lungo il percorso di errore della cache.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Predefinita:

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 le voci contenute nella cache a livello amministrativo. Per saperne di più, consulta la sezione API Caches.

<CacheResource>cache_to_use</CacheResource>

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

Elemento <CacheKey>/<KeyFragment>

Specifica un valore che deve essere incluso nella chiave cache, creando uno spazio dei nomi per associare le richieste alle risposte memorizzate nella cache.

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

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

N/A

Può essere una chiave (un nome statico da te fornito) o 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 cache.

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

Utilizza l'elemento <KeyFragment> in combinazione con <Prefix> e <Scope>. Per ulteriori informazioni, consulta l'argomento Utilizzo delle chiavi cache.

Attributi

Attributo Tipo Predefinito Obbligatorio Descrizione
rif 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>

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

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

Utilizza l'elemento <Prefix> in combinazione con <CacheKey> e <Scope>. Per ulteriori informazioni, consulta l'argomento Utilizzo delle chiavi cache.

Elemento <EscludiErrorResponse>

Attualmente, per impostazione predefinita, questo criterio memorizza nella cache le risposte HTTP con qualsiasi codice di stato possibile. Ciò significa che sia le risposte di successo che quelle di errore vengono memorizzate nella cache. Ad esempio, le risposte con i codici di stato 2xx e 3xx vengono memorizzate nella cache per impostazione predefinita.

Imposta questo elemento su true se non vuoi memorizzare nella cache le risposte target con codici di stato di errore HTTP; solo le risposte con codici di stato da 200 a 205 verranno memorizzate nella cache se questo elemento è vero. Questi sono gli unici codici di stato HTTP che Apigee conteggia come codici di operazione riuscita e non puoi modificare questa associazione.

Per una discussione sui pattern della cache di risposta in cui questo elemento è utile, consulta la pagina Introduzione agli anti-pattern.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

Predefinita:

false

Presenza:

Facoltativo

Tipo:

Booleano

Elemento <ExpirySettings>

Specifica la scadenza di una voce della cache. Se presente, <TimeoutInSeconds> sostituisce sia <TimeOfDay> che <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>

Predefinita:

N/A

Presenza:

Obbligatorio

Tipo:

N/A

Elemento <ExpirySettings>/<ExpiryDate>

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

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

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

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

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

N/A Facoltativo Stringa

Elemento <ExpirySettings>/<TimeOfDay>

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

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

Per l'ora del giorno, le impostazioni internazionali e il fuso orario predefiniti varieranno a seconda della posizione di esecuzione del codice, che non è rilevabile durante la configurazione del criterio.

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

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

Attributo Descrizione Predefinito Presenza Tipo
rif Variabile con il valore della data di scadenza. N/A Facoltativo Stringa

Elemento <ExpirySettings>/<TimeoutInSec>

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

Elemento <ExpirySettings>/<TimeoutInSECONDS>

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

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

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

Attributi

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

Elemento <Scope>

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

<Scope>scope_enumeration</Scope>

Predefinita:

"Esclusivo"

Presenza:

Facoltativo

Tipo:

Stringa

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

Se un elemento <Prefix> è presente in <CacheKey>, sostituisce un valore dell'elemento <Scope>. I valori validi includono le enumerazioni riportate di seguito.

Utilizza l'elemento <Scope> in combinazione con <CacheKey> e <Prefix>. Per ulteriori informazioni, consulta l'argomento Utilizzo delle chiavi cache.

Valori accettati

Valore ambito Descrizione
Global

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

Se definisci una voce <CacheKey> con l'apiAccessToken <KeyFragment> e un ambito <Global>, ogni voce viene archiviata come orgName__envName__apiAccessToken, seguita 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 "apilabs", i token di accesso vengono archiviati nella seguente chiave cache: apifactory__test__apiAccessToken.

Application

Il nome del proxy API viene utilizzato come prefisso.

La chiave cache è anteposta nel formato orgName__envName__apiProxyName.

Proxy

Come prefisso viene utilizzata la configurazione dell'endpoint proxy.

La chiave cache è anteposta nel formato orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

La configurazione TargetEndpoint viene utilizzata come prefisso.

Chiave cache anteposta nel formato orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

Predefinito. Si tratta del più specifico e, di conseguenza, presenta un rischio minimo di collisioni dello spazio dei nomi all'interno di una determinata cache.

Il prefisso può avere due forme:

  • Se il criterio è associato al flusso ProxyEndpoint, il formato del prefisso è ApiProxyName_ProxyEndpointName.
  • Se il criterio è associato a TargetEndpoint, il formato del prefisso è ApiProxyName_TargetName.

Chiave cache anteposta nel formato orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

Elemento <SkipCacheLookup>

Definisce un'espressione che, se restituisce true in fase di runtime, specifica che la ricerca nella cache deve essere saltata e la cache deve essere aggiornata. Vedi anche il video sul criterio ResponseCache per l'utilizzo di SkipCacheLookup.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

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

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

Elemento <SkipCache vibrazione>

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

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

Predefinita:

N/A

Presenza:

Facoltativo

Tipo:

Stringa

Ad esempio, quanto segue ignorerebbe la scrittura nella cache se il codice di stato della risposta era 400 o superiore:

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

Elemento <UseAccettaHeader>

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

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

Ad esempio, considera se due richieste provengono 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 sarà (probabilmente) una risposta in formato gzip. La seconda richiesta leggerà il valore memorizzato nella cache e potrebbe quindi restituire una voce gzip a un client che non è in grado di leggere gzip.

Per ulteriori informazioni, consulta Configurazione di una chiave cache.

<UseAcceptHeader>false</UseAcceptHeader>

Predefinita:

false

Presenza:

Facoltativo

Tipo:

Booleano

Elemento <UseResponseCacheHeaders>

Impostalo su true per fare in modo che le intestazioni delle risposte HTTP vengano prese in considerazione durante l'impostazione della "durata di vita" (TTL) della risposta nella cache. Quando questo è true, Apigee considera i valori delle seguenti intestazioni di risposta, confrontando i valori con quelli impostati da <ExpirySettings> quando imposta la durata:

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

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

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

Predefinita:

false

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, consulta Cache interni.

Tramite la configurazione nel criterio ResponseCache, puoi fare in modo che Apigee includa le intestazioni delle risposte HTTP nell'impostazione della scadenza delle voci della cache e delle chiavi cache. In questa sezione viene spiegato che puoi utilizzare il criterio con intestazioni per gestire la scadenza e le chiavi cache.

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

Impostazione della scadenza delle voci di cache

Come con il criterio PopulateCache, puoi impostare la scadenza di una voce della cache delle risposte (la relativa durata) utilizzando l'elemento <ExpirySettings>. Nel criterio ResponseCache, puoi anche chiedere ad Apigee di considerare le intestazioni di risposta, se presenti.

Per utilizzare le intestazioni delle risposte, imposta il valore dell'elemento <UseResponseCacheHeaders> su true. Questa impostazione fa sì che Apigee consideri le intestazioni delle risposte, le confronti con il valore impostato da <ExpirySettings>, quindi utilizzi il valore più basso tra i due. Nel considerare 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 pari a 300
  • Una data di Expires tra tre giorni
  • Un valore TimeoutInSeconds <ExpirySettings> pari a 600.

In questo caso, per il TTL verrà utilizzato il valore Cache-Control max-age 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 cache

Come per i criteri della cache per uso generico come il criterio PopulateCache, con ResponseCache utilizzi gli elementi <CacheKey> e <Scope> per configurare la creazione di chiavi cache per le voci della cache. Con ResponseCache puoi anche rendere più significative le chiavi cache aggiungendo le intestazioni della risposta Accept alle coppie chiave-valore.

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

Informazioni sulla crittografia della cache

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

Variabili di flusso

Le seguenti variabili di flusso predefinite vengono compilate quando viene eseguito un criterio ResponseCache. Per ulteriori informazioni sulle variabili di flusso, consulta la documentazione di riferimento sulle variabili di flusso.

Variabili Tipo Autorizzazione Descrizione
responsecache.{policy_name}.cachename Stringa Sola lettura Restituisce la cache utilizzata nel criterio
responsecache.{policy_name}.cachekey Stringa Sola lettura Restituisce la chiave utilizzata
responsecache.{policy_name}.cachehit Booleano Sola lettura True se l'esecuzione del criterio ha esito positivo
responsecache.{policy_name}.invalidentry Booleano Sola lettura True se la voce della cache non è valida

Codici di errore

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

Prefisso codice di errore

N/A

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 errore Causa Correggi
InvalidTimeout Se l'elemento <CacheLookupTimeoutInSeconds> del criterio ResponseCache viene 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 è collegato 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 menzionata nel messaggio di errore non è stata creata su un componente specifico dell'processore di messaggi.

Variabili di errore

N/A

Esempio di risposta di errore

N/A

Schema

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