Configurazione dei flussi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

I flussi sono i componenti di base di base dei proxy API. I flussi consentono di programmare il comportamento di un'API consentendo di configurare la sequenza in cui i criteri e il codice vengono eseguiti da un proxy API.

Per una panoramica concettuale dei flussi, consulta Controllo dell'esecuzione di un proxy con i flussi.

Questo argomento descrive come creare flussi condizionali e aggiungere logica (criteri) ai flussi ad alto livello. L'arte di creare condizioni coinvolge più dettagli di quelli trattati in questo argomento. Per ulteriori dettagli, consulta Panoramica delle variabili di flusso e Condizioni con variabili di flusso.

Collegamento di 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 consentono di aggiungere il tuo codice personalizzato per personalizzare completamente l'elaborazione dei messaggi.

Ad esempio:

  • Collega un criterio di sicurezza OAuth al preflusso della richiesta di ProxyEndpoint. Poiché il flusso preliminare di richieste di ProxyEndpoint è il primo flusso nella pipeline, puoi rifiutare immediatamente una richiesta se viola i tuoi criteri di sicurezza.
  • Allega un criterio di conversione da JSON a XML al postFlow di risposta di TargetEndpoint per convertire una risposta da JSON a XML.
  • Collega un criterio JavaScript a un JavaScript per eseguire il codice JavaScript ed elaborare la richiesta

Una volta creato, un 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.

Nel menu di navigazione è evidenziato un flusso condizionale di esempio denominato "problema", mentre
    nel riquadro Flusso viene mostrato il pulsante Passaggio.

Nel riquadro Aggiungi passaggio viene creata una nuova istanza del criterio con il tipo di criterio Quota e nome visualizzato Quota-2.

Se colleghi il criterio al flusso selezionato, configuri il proxy API per applicare 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, nella visualizzazione 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 sul proxy API arriva una richiesta GET con un pattern URI .../issue/** (/issue/ con qualsiasi valore nell'URI successivo all'ultima barra), la quota viene applicata alla chiamata API.

Informazioni sui flussi condizionali

Tutti i criteri collegati a PreFlow o PostFlow vengono sempre eseguiti. Tuttavia, i criteri in un flusso condizionale vengono eseguiti solo se la condizione del flusso è 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 è considerata true. Ciò significa che puoi eseguire un flusso condizionale come parte di ciascuno dei seguenti elementi:

  • Pipeline di richiesta di ProxyEndpoint
  • Pipeline di richiesta di TargetEndpoint
  • Pipeline di risposta di ProxyEndpoint
  • Pipeline di risposta di TargetEndpoint

Video: guarda un breve video per scoprire di più sui flussi condizionali.

Ad esempio, la seguente definizione di ProxyEndpoint mostra un flusso condizionale eseguito da ProxyEndpoint in 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>

Nota che la condizione fa riferimento alla variabile di flusso request.verb. Una variabile di flusso è denominata riferimenti 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 alcune entità a cui gli sviluppatori possono accedere chiamando la tua API. Ad esempio, se il backend del tuo servizio fornisce previsioni meteo e previsioni meteo, l'API potrebbe definire due flussi condizionali mappati alle 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 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, farai 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.

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 Sviluppo nel generatore di proxy API.

Scheda Sviluppo del generatore di proxy

Fai clic sull'icona + nell'endpoint che ti interessa.

Pulsante Aggiungi flusso condizionale

Il modulo Nuovo flusso condizionale consente di assegnare un nome al flusso e configurare una condizione. Nel seguente esempio, aggiungi una condizione semplice che valuti l'HTTP del messaggio di richiesta per un verbo GET (anziché PUT, POST e così via) in qualsiasi URI dopo il percorso di base.

Nel riquadro Nuovo flusso condizionale, il flusso è denominato Flow-1 e vengono configurati tipo di condizione, percorso e verbo.

Scopri come costruire istruzioni condizionali in Variabili e condizioni di flusso.

Il nuovo flusso, chiamato Flow-1, ora compare nel menu di navigazione.

Flusso-1 evidenziato

Ora osserva la configurazione XML di ProxyEndpoint. Seleziona Flow-1 nel menu Navigazione.

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>

Passaggi successivi

Gli argomenti seguenti forniscono ulteriori dettagli sulla creazione delle condizioni e sull'utilizzo delle variabili: