Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
In un flusso condizionale,
le norme vengono eseguite solo se la condizione del flusso è valutata come
true
(a differenza delle norme associate a PreFlow o PostFlow,
che vengono sempre eseguite). Questa sezione descrive come creare un flusso condizionale.
Informazioni sui flussi agevolati
Durante l'elaborazione di una richiesta e di una risposta, viene eseguito un solo flusso condizionale per segmento, ovvero il primo flusso la cui condizione ha valore true
.
I seguenti esempi illustrano alcuni modi per utilizzare i flussi agevolati.
Esempio 1
La seguente definizione di ProxyEndpoint mostra un flusso condizionale eseguito
da ProxyEndpoint su qualsiasi richiesta HTTP GET
al proxy API:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>request.verb="GET"</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
Tieni presente che la condizione fa riferimento alla request.verb
variabile
di flusso. Una variabile di flusso è costituita da riferimenti denominati che contengono informazioni sullo stato associate
a una transazione API elaborata da Apigee. Apigee definisce molte variabili di stato a cui puoi fare riferimento.
Esempio 2
Se il backend del servizio fornisce bollettini meteo e previsioni meteo, l'API potrebbe definire due flussi condizionali che mappano a queste risorse dell'API: /reports
e /forecasts
. Quando una chiamata API include una di queste risorse nell'URL, la condizione restituisce true e viene eseguita la logica associata al flusso condizionale.
Gli sviluppatori di app accedono alle tue risorse inviando richieste a un URL nel seguente formato:
http://myAPIs.myCo.com/weather/reports
oppure:
http://myAPIs.myCo.com/weather/forecasts
In un proxy API, puoi definire un flusso condizionale che corrisponde a una risorsa specifica:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition> <Request/> <Response/> </Flow> <Flow name="Flow-2"> <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
In questo esempio fai riferimento alla variabile di flusso proxy.pathsuffix
, che contiene la parte del suffisso dell'URL utilizzato per accedere al proxy API. Puoi quindi associare diversi criteri al flusso condizionale per ogni risorsa.
Esempio: creazione di un flusso condizionale
L'esempio successivo:
- Crea un flusso condizionale che viene eseguito solo quando il messaggio di richiesta è un
GET
HTTP. - Aggiunge un criterio al nuovo flusso.
Aggiunta di un flusso condizionale
Nuovo editor proxy
Per aggiungere un flusso condizionale:
- Seleziona la scheda Sviluppa in Proxy Editor.
- Seleziona Endpoint proxy > predefinito nel riquadro a sinistra.
Nota: per visualizzare tutti gli elementi, potresti dover espandere l'editor visivo nel riquadro a destra. A tale scopo, fai clic e trascina leggermente verso il basso la barra di divisione tra l'editor visivo e l'editor di testo.
- Fai clic sul pulsante + sopra il riquadro Risposta.
- Nella finestra di dialogo Aggiungi flusso condizionale, seleziona Percorso e verbo e nel campo
Percorso, inserisci il suffisso del percorso che vuoi che sia nel percorso della richiesta affinché il
flusso condizionale venga eseguito. Vedi l'esempio 2 qui sopra.
Il flusso condizionale viene eseguito solo se la richiesta è una richiesta
GET
(ma non perPUT
,POST
e così via).Il nuovo flusso, denominato
Flow-1
, viene visualizzato nel riquadro Endpoint proxy. Il codice XML per il nuovo flusso condizionale viene visualizzato nell'editor di testo.
Se vuoi, puoi modificare l'elemento Condizione. Consulta Aggiungere logica ai flussi.
Collegamento di un criterio al flusso
Ora che hai creato il flusso condizionale, puoi associarvi un criterio. L'esempio seguente aggiunge al flusso un criterio per le quote, che limita il numero di messaggi di richiesta consentiti da un proxy API per un determinato periodo di tempo:
- Nel riquadro a sinistra, fai clic sul pulsante + a destra di Criteri.
- Nella finestra di dialogo Crea criterio, fai clic nel campo Seleziona il tipo di criterio, scorri verso il basso fino a Gestione traffico e seleziona Quota.
- Fai clic su Crea per creare il criterio.
- Fai clic sul pulsante + accanto a Flusso 1 nel riquadro Richiesta.
- Nella finestra di dialogo Passaggio per l'aggiunta del criterio, fai clic nel campo Seleziona criterio esistente e seleziona Quota-1.
- Fai clic su Aggiungi.
Il riquadro Richiesta ora mostra il flusso e il criterio allegato Quota-1.
L'editor di testo ora mostra un passaggio contenente il criterio Quota-1 nell'elemento Flow-1 del file XML:
Con questa configurazione, il criterio per le quote verrà applicato alle richieste GET
.
Le richieste di altri tipi non contribuiscono al numero massimo di richieste nei criteri di quota.
Editor proxy classico
Per aggiungere un flusso condizionale, seleziona la scheda Sviluppa nel generatore di proxy API.
Fai clic su nell'endpoint desiderato.
Il modulo Nuovo flusso condizionale ti consente di assegnare un nome al flusso e di configurare una condizione. Nel
seguente esempio, aggiungi una semplice condizione che valuta l'HTTP del messaggio di richiesta per un verbo GET
(anziché PUT
, POST
e così via) su qualsiasi URI dopo il percorso di base.
Scopri come creare istruzioni condizionali in Condizioni con variabili di flusso.
Il nuovo flusso, denominato Flow-1
, viene visualizzato nel menu Navigator.
Ora osserva la configurazione XML per ProxyEndpoint. Seleziona Flusso 1 nel menu Navigator.
Vedrai la seguente configurazione.
<PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Request/> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition> </Flow> </Flows> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow>
Una volta creato, il flusso condizionale è disponibile per l'attacco delle norme. Con il flusso selezionato, fai clic sull'icona Passaggio + nel diagramma di richiesta o risposta per aggiungere al flusso un criterio nuovo o esistente.
Se colleghi il criterio al flusso selezionato, configuri il proxy API in modo da applicare il criterio per le quote solo per le richieste effettuate alla combinazione di URI e verbo del flusso. Ad esempio, se colleghi il criterio al flusso learn nella richiesta, nell'editor di testo viene generato il seguente codice XML:
<ProxyEndpoint name="default"> ... <Flow name="issue"> <Description/> <Request> <Step> <Name>Quota-2</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition> </Flow> ... </ProxyEndpoint>
In questa configurazione, se nel proxy API arriva una richiesta GET
con un pattern URI di .../issue/** (/issue/ con qualsiasi elemento nell'URI dopo l'ultimo slash), la quota viene applicata a quella chiamata API.
Passaggi successivi
I seguenti argomenti forniscono ulteriori dettagli sulla creazione di condizioni e sull'utilizzo delle variabili: