Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
In un flusso condizionale, i criteri vengono eseguiti solo se la condizione del flusso valuta true
(a differenza dei criteri associati a PreFlow o PostFlow, che vengono sempre eseguiti). Questa sezione descrive come creare un flusso condizionale.
Informazioni sui flussi condizionali
Durante l'elaborazione di una richiesta e di una risposta, viene eseguito un solo flusso condizionale per segmento, il primo la cui condizione ha valore true
.
Gli esempi seguenti illustrano alcuni modi per utilizzare i flussi condizionali.
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 variabile
flow request.verb
. Una variabile di flusso è denominata riferimenti 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 tuo servizio fornisce previsioni meteo e previsioni meteo, l'API potrebbe definire due flussi condizionali mappati 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 possono quindi accedere alle tue risorse inviando richieste a un URL nel modulo:
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 utilizzata per accedere al proxy API. Puoi quindi collegare criteri diversi al flusso condizionale per ogni risorsa.
Esempio: creare un flusso condizionale
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 Develop nell'editor proxy.
- Seleziona Endpoint proxy > predefiniti nel riquadro a sinistra.
Nota: per visualizzare tutti gli elementi potrebbe essere necessario espandere l'editor visivo nel riquadro a destra. Per farlo, fai clic e trascina leggermente verso il basso il divisore 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 inserire nel percorso di richiesta affinché il flusso condizionale venga eseguito. Vedi l'esempio 2 riportato 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 ora 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 Condition. Consulta Aggiungere logica ai flussi.
Collegamento di un criterio al flusso
Ora che hai creato il flusso condizionale, puoi associarvi un criterio. L'esempio successivo aggiunge al flusso un criterio per le quote, che limita il numero di messaggi di richiesta consentiti da un proxy API in un determinato periodo di tempo:
- Nel riquadro a sinistra, fai clic sul pulsante + a destra di Norme.
- Nella finestra di dialogo Crea criterio, fai clic sul campo Seleziona il tipo di criterio, scorri verso il basso fino a Gestione del traffico e seleziona Quota.
- Fai clic su Crea per creare il criterio.
- Fai clic sul pulsante + accanto a Flow-1 nel riquadro Richiesta.
- Nella finestra di dialogo Aggiungi passaggio del criterio, fai clic sul campo Seleziona criterio esistente e seleziona Quota-1.
- Fai clic su Aggiungi.
Nel riquadro Richiesta ora sono visualizzati il flusso e il criterio associato, 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 in modo forzato alle richieste GET
.
Le richieste di altri tipi non contribuiscono al numero massimo di richieste nei criteri per le quote.
Editor proxy classico
Per aggiungere un flusso condizionale, seleziona la scheda Sviluppo nello strumento per la creazione di proxy API.
Fai clic su nell'endpoint che ti interessa.
Il modulo Nuovo flusso condizionale consente di assegnare un nome al flusso e configurare una condizione. Nell'esempio seguente, aggiungi una condizione semplice che valuta l'HTTP del messaggio di richiesta per un verbo GET
(anziché PUT
, POST
e così via) in qualsiasi URI dopo il percorso di base.
Scopri come creare istruzioni condizionali in Condizioni con variabili di flusso.
Il nuovo flusso, denominato Flow-1
, è ora visualizzato nel menu di navigazione.
Ora osserva la configurazione XML per ProxyEndpoint. Seleziona Flow-1 nel menu Navigatore.
Verrà visualizzata la configurazione seguente.
<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 il collegamento del criterio. Con il flusso selezionato, fai clic sull'icona + Passaggio nel diagramma della richiesta o della risposta per aggiungere un criterio nuovo o esistente al flusso.
Se colleghi il criterio al flusso selezionato, configuri il proxy API in modo che applichi il criterio per le quote solo per le richieste effettuate a quella combinazione di URI del flusso e verbo. Ad esempio, se colleghi il criterio al flusso di apprendimento nella richiesta, nell'editor di testo viene generato il seguente 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
/issue/** (/issue/ con qualsiasi elemento nell'URI successivo all'ultima
barra), alla chiamata API viene applicata una quota.
Passaggi successivi
Gli argomenti seguenti forniscono ulteriori dettagli sulla creazione delle condizioni e sull'utilizzo delle variabili: