Creare criteri avanzati
Questa unità fornisce un riferimento per i criteri di Gestione API seguenti:
- Controlla flusso: applica in modo condizionale le istruzioni dei criteri sulla base dei risultati della valutazione di espressioni booleane.
- Inoltra richiesta : inoltra la richiesta al servizio back-end.
- Limita la concorrenza: previene ai criteri racchiusi l’esecuzione di un numero maggiore di richieste contemporaneamente rispetto a quello specificato.
- Registra in Hub eventi: invia messaggi nel formato specificato a un Hub eventi definito da un'entità Logger.
- Restituisci risposta: interrompe l'esecuzione della pipeline e restituisce una risposta fittizia direttamente al chiamante.
- Riprova : riprova l'esecuzione delle istruzioni dei criteri, se e fino a quando non viene soddisfatta la condizione. L'esecuzione viene ripetuta a specifici intervalli di tempo e per il numero di tentativi indicato.
Flusso di controllo
Il criterio choose
si applica alle istruzioni del criterio incluse in base al risultato della valutazione di espressioni booleane, simili a un costrutto if-then-else o switch in un linguaggio di programmazione.
<choose>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<otherwise>
<!— one or more policy statements to be applied if none of the above conditions are true -->
</otherwise>
</choose>
Il criterio del flusso di controllo deve contenere almeno un elemento <when/>
. L'elemento <otherwise/>
è facoltativo. Le condizioni negli elementi <when/>
vengono valutate in ordine di visualizzazione all'interno del criterio. Le istruzioni dei criteri racchiuse all'interno del primo elemento <when/>
vengono applicate quando l'attributo condition è true. I criteri racchiusi all'interno dell'elemento <otherwise/>
, se presente, vengono applicati se tutti gli attributi condition dell'elemento <when/>
sono false.
Inoltro richiesta
Il criterio forward-request
inoltra la richiesta in ingresso al servizio back-end specificato nel contesto della richiesta. L'URL del servizio back-end è specificato nelle impostazioni API e può essere modificato tramite il criterio imposta servizio back-end.
Se si rimuovono questi criteri, la richiesta non verrà inoltrata al servizio back-end. I criteri della sezione outbound vengono valutati subito dopo il completamento dei criteri della sezione inbound.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Limite concorrenza
Il criterio limit-concurrency
impedisce ai criteri racchiusi di eseguire un numero maggiore di richieste in qualsiasi momento rispetto a quello specificato. Quando le richieste superano tale numero, le nuove richieste hanno immediatamente esito negativo con un codice di stato 429 Troppe richieste.
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Accesso all'hub eventi
Il criterio log-to-eventhub
invia messaggi nel formato specificato a un Hub eventi definito da un'entità Logger. Come suggerisce il nome, il criterio viene usato per salvare le informazioni sul contesto della richiesta o della risposta selezionate per l'analisi online o offline.
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
Simulazione risposta
Il criterio mock-response
, come implica il nome, viene usato per restituire API e operazioni. Interrompe la normale esecuzione della pipeline e restituisce una risposta fittizia al chiamante. Il criterio tenta sempre di restituire risposte con la massima fedeltà. Preferisce esempi di contenuto di risposta, se disponibili. Nelle situazioni in cui vengono forniti schemi ma non esempi, genera risposte di esempio dagli schemi. Se non vengono trovati esempi o schemi, vengono restituite risposte senza contenuto.
<mock-response status-code="code" content-type="media type"/>
Riprova
Il criterio retry
esegue i criteri figlio una volta e quindi ritenta l'esecuzione degli stessi fino a quando il tentativo condition
diventa false
o fino a esaurimento del tentativo count
.
<retry
condition="boolean expression or literal"
count="number of retry attempts"
interval="retry interval in seconds"
max-interval="maximum retry interval in seconds"
delta="retry interval delta in seconds"
first-fast-retry="boolean expression or literal">
<!-- One or more child policies. No restrictions -->
</retry>
Restituire la risposta
Il criterio return-response
interrompe l'esecuzione della pipeline e restituisce al chiamante una risposta predefinita o personalizzata. La risposta predefinita è 200 OK
, senza corpo. La risposta personalizzata può essere specificata tramite una variabile di contesto o istruzioni di criteri. Quando vengono forniti entrambi, l'istruzione dei criteri modifica la variabile di contesto prima di essere restituita al chiamante.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Altre risorse
- Per altri esempi di criteri, vedere Criteri di Gestione API.
- Gestione degli errori nei criteri di Gestione API