Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
I flussi sono gli elementi di base dei proxy API. I flussi ti consentono di programmare il comportamento di un'API consentendoti di configurare la sequenza in cui i criteri e il codice vengono eseguiti da un proxy API.
Per una panoramica concettuale dei flussi, consulta Controllare l'esecuzione di un proxy con i flussi.
Questo argomento descrive come creare flussi condizionali e aggiungere logica (criteri) ai flussi a livello generale. L'arte di creare condizioni richiede più dettagli di quelli trattati in questo argomento. Per informazioni dettagliate, consulta la sezione Panoramica delle variabili di flusso e Condizioni con variabili di flusso.
Collegamento dei criteri ai flussi
Edge include molti tipi diversi di criteri predefiniti per implementare la sicurezza, gestire il traffico e manipolare i messaggi. Inoltre, i criteri ti consentono di aggiungere il tuo codice personalizzato per personalizzare completamente l'elaborazione dei messaggi.
Ad esempio:
- Collega un criterio di sicurezza OAuth alla richiesta PreFlow del ProxyEndpoint. Poiché il PreFlow della richiesta del ProxyEndpoint è il primo flusso della pipeline, puoi rifiutare immediatamente una richiesta se viola i tuoi criteri di sicurezza.
- Collega un criterio di conversione da JSON a XML al post-flusso di risposta di TargetEndpoint per convertire una risposta da JSON a XML.
- Collega un criterio JavaScript a un flusso condizionale di ProxyEndpoint per eseguire il codice JavaScript necessario per elaborare la richiesta.
Una volta creato, il flusso condizionale è disponibile per l'attacco dei criteri. 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 agganci il criterio al flusso learn nella richiesta, nella visualizzazione del codice dell'editor proxy 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 di .../issue/** (/issue/ con qualsiasi elemento nell'URI dopo l'ultimo slash), la quota viene applicata a quella chiamata API.
Informazioni sui flussi agevolati
Tutti i criteri associati a PreFlow o PostFlow vengono sempre eseguiti. Tuttavia, i criteri in un flusso condizionale vengono eseguiti solo se la condizione del flusso ha valore true.
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. Ciò significa che puoi eseguire un flusso condizionale come parte di ciascuno dei seguenti elementi:
- Pipeline delle richieste di ProxyEndpoint
- Pipeline delle richieste di TargetEndpoint
- Pipeline di risposta di ProxyEndpoint
- Pipeline di risposta di TargetEndpoint
Video:guarda un breve video per scoprire di più sui flussi agevolati.
Ad esempio, 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 di flusso request.verb. Una variabile di flusso è costituita da riferimenti denominati che contengono informazioni sullo stato associate a una transazione API elaborata da Edge. Edge definisce molte variabili di stato a cui puoi fare riferimento.
I servizi RESTful sono raccolte di risorse API. Una risorsa API è un frammento di percorso URI che identifica un'entità a cui gli sviluppatori possono accedere chiamando la tua API. Ad esempio, 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 quindi alle tue risorse effettuando 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 utilizzata per accedere al proxy dell'API. Puoi quindi associare diversi criteri al flusso condizionale per ogni risorsa.
Aggiunta di un flusso condizionale
In questo breve esempio, configurerai un flusso che viene eseguito solo quando il messaggio di richiesta è una richiesta HTTP GET.
Per aggiungere un flusso condizionale, seleziona la scheda Sviluppa nel generatore di proxy API.
Fai clic sull'icona + nell'endpoint desiderato.
Il modulo Nuovo flusso condizionale ti consente di assegnare un nome al flusso e di 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) su qualsiasi URI dopo il percorso di base.
Scopri come creare istruzioni condizionali in Variabili e condizioni del flusso.
Il nuovo flusso, chiamato Flow-1, ora appare nel menu di navigazione.
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>
Passaggi successivi
I seguenti argomenti forniscono ulteriori dettagli sulla creazione di condizioni e sull'utilizzo delle variabili: