Configurazione dei flussi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

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

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

Questo argomento descrive come creare flussi condizionali e aggiungere logica (criteri) ai flussi in un di alto livello. L'arte di creare le condizioni comporta più dettagli di quelli trattati in per ogni argomento. Per maggiori dettagli, consulta Panoramica del flusso variabili e Condizioni con variabili di flusso.

Collegamento dei criteri ai flussi

Edge è dotato di molti tipi diversi di criteri predefiniti per implementare la sicurezza, gestire traffico e manipolare i messaggi. Inoltre, i criteri consentono di aggiungere codice personalizzato personalizzare completamente l'elaborazione dei messaggi.

Ad esempio:

  • Collega un criterio di sicurezza OAuth a la richiesta PreFlow del ProxyEndpoint. Poiché PreFlow di richiesta ProxyEndpoint è il primo flusso nella pipeline, puoi eseguire immediatamente rifiuta una richiesta se viola i tuoi criteri di sicurezza.
  • Allega un criterio di conversione da JSON a XML a la risposta PostFlow del TargetEndpoint per convertire un la risposta da JSON a XML.
  • Collega un criterio JavaScript a un modello Conditional Flusso del ProxyEndpoint per eseguire il codice JavaScript ed elaborare il richiesta

Una volta creato, un flusso condizionale è disponibile per il collegamento dei criteri. Con il flusso selezionata, fai clic sull'icona + Passaggio nel diagramma della richiesta o della risposta per aggiungere un nel flusso un criterio nuovo o esistente.

Nel menu di navigazione, è evidenziato un esempio di problema con nome di flusso condizionale e
    nel riquadro Flow, viene mostrato il pulsante Step.

Nel riquadro Add Step, 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 l'applicazione forzata Criterio per le quote solo per le richieste inviate a quella combinazione di URI e verbo del flusso. Ad esempio, se collegare il criterio al flusso learn nella richiesta, il seguente XML è generate nella visualizzazione codice dell'editor proxy:

<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 una richiesta GET arriva nel proxy API con un URI pattern di .../issue/** (/issue/ con qualsiasi cosa nell'URI dopo l'ultimo inoltro) barra), la quota viene applicata a quella 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 di testo, il primo flusso la cui condizione restituisce true. Ciò significa che puoi avere flusso condizionale eseguito come parte di ciascuno dei seguenti elementi:

  • Pipeline di richieste di ProxyEndpoint
  • Pipeline di richieste di TargetEndpoint
  • Pipeline di risposta di ProxyEndpoint
  • Pipeline di risposta di TargetEndpoint

Video: guarda un breve video per ulteriori informazioni sui flussi condizionali.

Ad esempio, la seguente definizione ProxyEndpoint mostra un flusso condizionale che viene eseguito dal 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 al flusso request.verb . Una variabile di flusso è costituita da riferimenti denominati che contengono informazioni sullo stato associate con una transazione API elaborata da Edge. Edge definisce molte variabili di stato che puoi 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 fornisce previsioni meteo e previsioni meteo, l'API potrebbe definire due Flussi condizionali mappati a quelle API risorse: /reports e /forecasts. Quando una chiamata API include una di queste risorse nell'URL, la condizione restituisce true e la logica collegata 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 un risorsa:

<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. Poi puoi allegare diversi criteri al flusso condizionale per ogni risorsa.

Aggiunta di un flusso condizionale

In questo breve esempio, configuri un flusso che viene eseguito solo quando il messaggio di richiesta HTTP GET.

Per aggiungere un flusso condizionale, seleziona la scheda Sviluppo nello Strumento per la creazione di proxy API.

Scheda Sviluppo del generatore di proxy

Fai clic sull'icona + nell'endpoint desiderato.

Pulsante Aggiungi flusso condizionale

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

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

(Scopri come costruire istruzioni condizionali in Variabili di flusso e di sicurezza.

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

Flusso-1 evidenziato

Ora osserva la configurazione XML per ProxyEndpoint. Seleziona Flow-1 nella Menu di navigazione.

Verrà visualizzata 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

Gli argomenti riportati di seguito forniscono ulteriori dettagli sulla costruzione di condizioni e sull'utilizzo variabili: