Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Questa sezione fornisce informazioni di riferimento sugli elementi XML che utilizzi per definire Flussi del proxy API.
Gerarchia e sintassi
I seguenti esempi mostrano la gerarchia degli elementi e la sintassi della configurazione del flusso elementi:
Gerarchia degli elementi
L'esempio seguente mostra la gerarchia degli elementi di configurazione del flusso all'interno di
Elementi <ProxyEndpoint>
e <TargetEndpoint>
:
<ProxyEndpoint | TargetEndpoint><PreFlow>
<Request>
<Step>
<Condition>
<Name>
<Response>
<Step>
<Condition>
<Name>
<Description>
<Flows>
<Flow>
<Description>
<Condition>
<Request>
<Step>
<Response>
<Step>
<Description>
<PostFlow>
<Request>
<Step>
<Response>
<Step>
<Description>
<PostClientFlow>
(<ProxyEndpoint> only)<Response>
<Description>
// Additional configuration elements </ProxyEndpoint | TargetEndpoint>
Sintassi
L'esempio seguente mostra la sintassi per gli elementi di configurazione del flusso. Ciascuno di questi viene descritta in dettaglio nelle sezioni seguenti:
<!-- ProxyEndpoint flow configuration file --> <ProxyEndpoint ... > ... <PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow> <Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> </Flows> <PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow> <PostClientFlow name="flow_name"> <Description>flow_description</Description> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostClientFlow> ... </ProxyEndpoint> <!-- TargetEndpoint flow configuration file --> <TargetEndpoint ... > ... <PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow> <Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> ... </Flows> <PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow> ... </TargetEndpoint>
Questi elementi vengono utilizzati per definire i valori PreFlow, Conditional Flow, PostFlow e PostClientFlow. dell'esecuzione.
<Condition>
Definisce un'istruzione che viene elaborata in fase di esecuzione. Se l'istruzione restituisce true, viene eseguito il passaggio o il flusso associato alla condizione. Se restituisce un valore false, il passaggio o il flusso viene ignorato.
Tipo | Stringa |
Elementi principali | <Flow> <Step> |
Elementi secondari | Nessuno |
Puoi applicare una condizione a un passaggio specifico o a un intero flusso, a seconda che tu abbia inserito
L'elemento nell'elemento <Flow>
o <Step>
:
// Condition can apply to just one step: // Or to the flow:<Flows>
<Flows>
<Flow>
<Flow>
<Step>
<Condition>
<Condition>
<Step>
<Name>
<Name>
... ... ... ... ... ... </Flows> </Flows>
Se una condizione all'interno di un valore <Step>
restituisce true, Edge esegue questo passaggio. Se la condizione
restituisce un valore false, Edge ignora il passaggio.
Se una condizione all'interno di un valore <Flow>
restituisce true, Edge elabora tutti i passaggi del flusso. Se
la condizione viene valutata come false, Edge ignora l'intero flusso.
Sintassi
L'elemento <Condition>
utilizza la seguente sintassi:
<Condition>property operator "value"</Condition>
Dove:
- property
- La proprietà della variabile di flusso che vuoi utilizzare nel tuo
. Ad esempio, la variabile di flusso
request
ha proprietà denominatepath
econtent
. Per utilizzarle in una condizione, devi specificare flow_variable[punto]property_name:request.path request.content
Per un elenco completo delle variabili di flusso e delle loro proprietà, consulta Riferimento per le variabili di flusso.
- operator
- Un costrutto che definisce il modo in cui viene valutata la condizione. Comuni
tra cui:
> greater than <= less than or equal to < less than >= greater than or equal to = equals && and != not equals || or ~~ JavaRegex ~ Matches /~ MatchesPath
Per un elenco completo, vedi Operatori nel Riferimento alle condizioni.
- "value"
- Il valore in base al quale viene valutata la proprietà della variabile di flusso. In genere questa è un tipo di base come un numero intero o una stringa. Ad esempio, 200 o "/gatto". Il valore può includere caratteri jolly, come asterischi e altri caratteri per la corrispondenza dei pattern, come descritti in Corrispondenza di pattern con condizionali.
Esempio 1
L'esempio seguente verifica se la variabile di flusso request
verb
è "GET":
<!-- api-platform/reference/examples/flow-segments/condition-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PreFlow> ... </ProxyEndpoint>
Se la richiesta è "GET", in questo esempio viene eseguita la richiesta "Log-Request-OK" .
Esempio 2
Nell'esempio seguente viene verificato il codice di risposta:
<!-- api-platform/reference/examples/flow-segments/condition-2.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> ... </ProxyEndpoint>
A seconda del valore del codice, viene eseguito un criterio diverso.
Attributi
L'elemento <Condition>
non ha attributi.
Elementi secondari
L'elemento <Condition>
non ha elementi secondari.
<Description>
Descrive il flusso in termini leggibili da una persona. Utilizza questo elemento per fornire informazioni sugli a te o ad altri sviluppatori. La descrizione non è visibile esternamente.
Tipo | Stringa |
Elementi principali | <Flow> <PreFlow> <PostFlow> |
Elementi secondari | Nessuno |
Sintassi
L'elemento <Description>
utilizza la seguente sintassi:
<Description>flow_description</Description>
Esempio
L'esempio seguente mostra un elemento <Description>
che specifica lo scopo di un
:
<!-- api-platform/reference/examples/flow-segments/description-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>XML-to-JSON-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Attributi
L'elemento <Description>
non ha attributi.
Elementi secondari
L'elemento <Description>
non ha elementi secondari.
<Flow>
Definisce un set personalizzato di passaggi eseguiti da Edge.
Tipo | Oggetto complesso |
Elementi principali | <Flows> |
Elementi secondari | <Condition> <Description> <Request> <Response> |
Facoltativamente, puoi specificare un <Condition>
su un <Flow>
. In questo caso, Edge esegue solo
i passaggi del flusso se la condizione restituisce true. Altrimenti, Edge ignora l'intera
flusso di lavoro.
Un elemento <Flows>
può contenere più elementi <Flow>
, ciascuno con la propria condizione
e passi. Quando sono presenti più elementi <Flow>
, Edge esegue solo il primo in cui
non c'è nessuna condizione oppure la condizione restituisce true.
Puoi definire un flusso predefinito che viene sempre eseguito (se nessuno degli altri flussi condizionali lo fa). A seconda di come è configurato il proxy API, questo può essere uno strumento utile in protezione contro i attacchi informatici.
Sintassi
L'elemento <Flow>
utilizza la seguente sintassi:
<Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow>
Tutti gli elementi secondari di <Flow>
sono facoltativi.
Esempio 1
L'esempio seguente mostra un <Flow>
semplice che esegue sempre il comando "Log-Message-OK"
norme:
<!-- api-platform/reference/examples/flow-segments/flow-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-flow"> <Flow> <Request> <Step> <Name>Log-Message-OK</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Esempio 2
L'esempio seguente mostra un <Flow>
con più passaggi, ognuno con il proprio
condizione:
<!-- api-platform/reference/examples/flow-segments/flow-2.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Esempio 3
L'esempio seguente mostra più flussi in un flusso condizionale:
<!-- api-platform/reference/examples/flow-segments/flows-2.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-flow-2"> <Response> <Step> <Condition>response.status.code >= 400</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-flow-3"> <Response> <Step> <Condition>response.status.code >= 300</Condition> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Edge esegue un solo flusso in un segmento; esegue il primo flusso che non ha una condizione o la cui condizione si risolve in true.
Attributi
Nella tabella seguente vengono descritti gli attributi dell'elemento <Flow>
:
Attributo | Tipo | Descrizione |
---|---|---|
name |
Stringa | (Obbligatorio) Un ID univoco per il flusso. Ad esempio: "My-Conditional-Flow-1". Il nome non può contenere spazi o altri caratteri speciali. |
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <Flow>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Condition> |
Stringa | Definisce un'istruzione condizionale che viene elaborata in fase di esecuzione. Se l'istruzione restituisce su true, viene eseguito il flusso (e tutti i suoi passaggi). Se l'istruzione restituisce false, il flusso (e tutti i relativi passaggi) vengono ignorati. |
<Description> |
Stringa | Fornisce una breve descrizione del flusso. Questa descrizione non è esterna visibile. |
<Request> |
Oggetto complesso | Specifica i passaggi e le condizioni per il segmento di richiesta. |
<Response> |
Oggetto complesso | Specifica i passaggi e le condizioni per il segmento di risposta. |
<Flows>
Contiene zero o più elementi <Flow>
.
Tipo | Oggetto complesso |
Elementi principali | <ProxyEndpoint> <TargetEndpoint> |
Elementi secondari | <Flow> |
Se sono presenti più elementi <Flow>
in <Flows>
, verrà eseguito solo uno <Flow>
. Questo
sarà il primo flusso che non ha un elemento <Condition>
o la cui condizione è stata risolta
su true.
Puoi definire un flusso predefinito che viene sempre eseguito (se nessuno degli altri flussi lo fa). A seconda di come è configurato il proxy API, questo può essere uno strumento utile in protezione contro i attacchi informatici.
Sintassi
L'elemento <Flows>
utilizza la seguente sintassi:
<Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> </Flows>
Tutti gli elementi secondari di <Flows>
sono facoltativi.
Esempio 1
L'esempio seguente mostra un elemento <Flows>
semplice con un singolo <Flow>
:
<!-- api-platform/reference/examples/flow-segments/flows-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Edge esegue uno di questi criteri in base al suffisso del percorso che raccoglie
proxy
. Se il suffisso del percorso non corrisponde a nessuna delle condizioni:
Edge non esegue questo flusso.
Esempio 2
L'esempio seguente mostra più elementi <Flow>
in <Flows>
, ciascuno con il proprio
<Condition>
:
<!-- api-platform/reference/examples/flow-segments/flows-2.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-flow-2"> <Response> <Step> <Condition>response.status.code >= 400</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-flow-3"> <Response> <Step> <Condition>response.status.code >= 300</Condition> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Edge esegue solo il primo flusso in un segmento la cui condizione restituisce true. Dopo il giorno che Edge ignora i flussi rimanenti nel segmento.
Esempio 3
L'esempio seguente mostra un valore "default" <Flow>
:
<!-- api-platform/reference/examples/flow-segments/flows-3.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-conditional-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-conditional-flow-2"> <Response> <Step> <Condition>response.header.someheader = "42"</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-default-flow"> <Response> <Step> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Edge esegue solo il primo flusso in un segmento la cui condizione restituisce true. Se non viene eseguito nessun flusso condizionale, viene eseguito il terzo flusso in questo esempio (senza condizione) .
Un flusso predefinito può essere uno strumento utile protezione contro i attacchi informatici.
Attributi
L'elemento <Flows>
non ha attributi.
Elementi secondari
L'elemento <Flows>
ha i seguenti elementi secondari:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Flow> |
Oggetto complesso | Un flusso che definisce un possibile insieme di passaggi all'interno del flusso condizionale. |
<Name>
Specifica l'ID del criterio da eseguire all'interno di un elemento <Flow>
.
Tipo | Stringa |
Elementi principali | <Step> |
Elementi secondari | Nessuno |
Sintassi
L'elemento <Name>
utilizza la seguente sintassi:
<Name>policy_name</Name>
Esempio
L'esempio seguente mostra due criteri aggiunti ai flussi con il loro nome:
<!-- api-platform/reference/examples/flow-segments/name-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Attributi
L'elemento <Name>
non ha attributi.
Elementi secondari
L'elemento <Name>
non ha elementi secondari.
<PostFlow>
Definisce i passaggi da eseguire nel PostFlow della richiesta e della risposta.
Tipo | Oggetto complesso |
Elementi principali | <ProxyEndpoint> <TargetEndpoint> |
Elementi secondari | <Description> <Request> <Response> |
L'elemento <PostFlow>
utilizza la seguente sintassi:
Sintassi
<PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow>
Esempio
L'esempio seguente mostra un PostFlow con passaggi sia per la richiesta che per la risposta definita:
<!-- api-platform/reference/examples/flow-segments/postflow-1.xml --> <ProxyEndpoint name="default"> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
Attributi
Nella tabella seguente vengono descritti gli attributi dell'elemento <PostFlow>
:
Attributo | Tipo | Descrizione |
---|---|---|
name |
Stringa | Un ID univoco per il flusso (univoco all'interno dell'endpoint). Ad esempio, "My-PostFlow-1". La non può includere spazi o altri caratteri speciali. |
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <PostFlow>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Description> |
Stringa | Fornisce una breve descrizione del flusso. |
<Request> |
Oggetto complesso | Definisce i criteri da eseguire durante il PostFlow della richiesta. |
<Response> |
Oggetto complesso | Definisce i criteri da eseguire durante il PostFlow della risposta. |
<PostClientFlow>
Definisce i criteri nel ProxyEndpoint che vengono eseguiti solo dopo che è stata restituita una risposta a il cliente. Questi criteri in genere registrano i messaggi relativi alla risposta.
Tipo | Oggetto complesso |
Elementi principali | <ProxyEndpoint> |
Elementi secondari | <Description> <Response> |
Sintassi
L'elemento <PostClientFlow>
utilizza la seguente sintassi:
<PostClientFlow name="flow_name"> <Description>flow_description</Description> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostClientFlow>
Tutti gli elementi secondari di <PostClientFlow>
sono facoltativi.
Esempio
L'esempio seguente mostra un semplice PostClientFlow che esegue un singolo criterio:
<!-- api-platform/reference/examples/flow-segments/postclientflow-1.xml --> <ProxyEndpoint name="default"> <PostClientFlow name="my-postclientflows"> <Description>My first PostClientFlow. Processed after the response is sent back to the client.</Description> <Response> <Step> <Name>Message-Logging-OK</Name> </Step> </Response> </PostClientFlow> ... </ProxyEndpoint>
Attributi
Nella tabella seguente vengono descritti gli attributi dell'elemento <PostClientFlow>
:
Attributo | Tipo | Descrizione |
---|---|---|
name |
Stringa | Un ID univoco per il flusso. Il nome non può includere spazi o altri spazi caratteri. Ad esempio, "My-PostClientFlow-1". |
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <PostClientFlow>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Description> |
Stringa | Fornisce una breve descrizione del flusso. |
<Response> |
Oggetto complesso | Definisce i criteri da eseguire durante il PostFlow della risposta. |
<PreFlow>
Definisce i criteri da eseguire nel flusso preliminare della richiesta e della risposta.
Tipo | Oggetto complesso |
Elementi principali | <ProxyEndpoint> <TargetEndpoint> |
Elementi secondari | <Description> <Request> <Response> |
Sintassi
L'elemento <PreFlow>
utilizza la seguente sintassi:
<PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow>
Tutti gli elementi secondari di <PreFlow>
sono facoltativi.
Esempio
L'esempio seguente mostra un PreFlow con una richiesta e un flusso di risposta definiti:
<!-- api-platform/reference/examples/flow-segments/preflow-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> ... </ProxyEndpoint>
Attributi
Nella tabella seguente vengono descritti gli attributi dell'elemento <PreFlow>
:
Attributo | Tipo | Descrizione |
---|---|---|
name |
Stringa | Un ID univoco per il flusso. Il nome non può includere spazi o altri spazi caratteri. Ad esempio, "My-PreFlow-1". |
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <PreFlow>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Description> |
Stringa | Fornisce una breve descrizione del flusso. |
<Request> |
Oggetto complesso | Definisce i criteri da eseguire durante il PreFlow della richiesta. |
<Response> |
Oggetto complesso | Definisce i criteri da eseguire durante il PreFlow della risposta. |
<Request>
Definisce i criteri da eseguire durante il segmento di richiesta del flusso.
Tipo | Oggetto complesso |
Elementi principali | <Flow> <PreFlow> <PostFlow> |
Elementi secondari | <Condition> <Step> |
Sintassi
L'elemento <Request>
utilizza la seguente sintassi:
<Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request>
Tutti gli elementi secondari di <Request>
sono facoltativi.
Esempio
L'esempio seguente mostra i flussi definiti per la richiesta sia in PreFlow che PostFlow:
<!-- api-platform/reference/examples/flow-segments/request-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PreFlow> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PostFlow> ... </ProxyEndpoint>
Attributi
L'elemento <Request>
non ha attributi.
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <Request>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Condition> |
Oggetto complesso | Determina se vengono eseguiti i passaggi all'interno del segmento di richiesta. |
<Step> |
Stringa | Specifica un criterio da eseguire nel segmento di richiesta. |
<Response>
Definisce i criteri da eseguire durante il segmento di risposta del flusso.
Tipo | Oggetto complesso |
Elementi principali | <Flow> <PreFlow> <PostClientFlow> <PostFlow> |
Elementi secondari | <Condition> <Step> |
Sintassi
L'elemento <Response>
utilizza la seguente sintassi:
<Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response>
Tutti gli elementi secondari di <Response>
sono facoltativi.
Esempio
L'esempio seguente mostra i flussi definiti per la risposta, sia nel flusso PreFlow che PostFlow:
<!-- api-platform/reference/examples/flow-segments/response-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
Attributi
L'elemento <Response>
non ha attributi.
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <Response>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Condition> |
Stringa | Determina se vengono eseguiti i passaggi all'interno del segmento di risposta. |
<Step> |
Stringa | Specifica un criterio da eseguire all'interno del segmento di risposta. |
<Step>
Specifica un criterio da eseguire e (facoltativamente) una condizione che determina se eseguire o meno tale norma.
Tipo | Oggetto complesso |
Elementi principali | <Request> <Response> |
Elementi secondari | <Condition> <Name> |
In una <Flow>
può essere presente più di un passaggio che viene eseguito nella
nell'ordine in cui vengono definiti
nel codice XML del flusso.
I passaggi senza una condizione vengono sempre eseguiti. I passaggi con una condizione vengono eseguiti solo se la condizione restituisce true. Se la condizione restituisce un valore false, Edge ignora il passaggio.
Sintassi
L'elemento <Step>
utilizza la seguente sintassi:
<Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step>
È possibile avere un solo <Condition>
e un <Name>
per <Step>
, ma è possibile
più passaggi in un <Flow>
.
Tutti gli elementi secondari di <Step>
sono facoltativi.
Esempio 1
L'esempio seguente mostra un passaggio con una condizione e un passaggio senza una condizione:
<!-- api-platform/reference/examples/flow-segments/step-1.xml --> <ProxyEndpoint name="default"> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
Il passaggio senza la condizione verrà eseguito ogni volta durante il segmento di richiesta. Passaggio con una condizione viene eseguita solo quando la richiesta è "GET" durante la risposta in base al segmento.
Esempio 2
L'esempio seguente mostra più passaggi in un singolo segmento:
<!-- api-platform/reference/examples/flow-segments/step-2.xml --> <ProxyEndpoint name="default"> <PostFlow name="PostFlow"> <Response> <Step> <Name>Assign-Message-1</Name> </Step> <Step> <Name>Assign-Message-2</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
I passaggi senza una condizione vengono sempre eseguiti.
Attributi
L'elemento <Step>
non ha attributi.
Elementi secondari
Nella tabella seguente vengono descritti gli elementi secondari di <Step>
:
Elemento secondario | Tipo | Descrizione |
---|---|---|
<Condition> |
Stringa | Definisce un'istruzione condizionale per il passaggio elaborato in fase di esecuzione. Se restituisce true, quindi Edge esegue il passaggio. Se l'istruzione restituisce false, Edge ignora il passaggio. |
<Name> |
Stringa | Specifica l'ID del criterio da eseguire nel flusso attuale. |