Collegamento di un criterio a un flusso ProxyEndpoint o TargetEndpoint

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

I criteri non vengono eseguiti finché non vengono collegati a un flusso. Puoi creare un allegato di criteri assegnando un nome a un criterio in una configurazione del passaggio.

La scelta del punto di attacco è fondamentale per il comportamento del proxy API. Ad esempio, se agganci il criterio Quota a un flusso di risposta, la quota verrà applicata dopo l'invio del messaggio di richiesta al servizio di backend. Ciò annullerebbe lo scopo dell'applicazione di un criterio per le quote. Pertanto, devi allegare il criterio di quota come passaggio di elaborazione nel flusso di richiesta.

Il formato di un allegato del criterio è:

<Step>
    <Name>{policy_name}</Name>
</Step>

Ad esempio:

<Step>
    <Name>QuotaPolicy</Name>
</Step>

Un criterio viene collegato a un flusso aggiungendo la configurazione del passaggio all'elemento del flusso di richiesta o risposta appropriato in una configurazione di ProxyEndpoint o TargetEndpoint.

Puoi allegare un criterio a un flusso di richiesta o risposta. I flussi di richiesta e risposta sono ulteriormente suddivisi in PreFlow e PostFlow.

L'esempio seguente mostra la configurazione minima di ProxyEndpoint, senza allegati di criteri. Definisce semplicemente la connessione HTTPProxy (in entrata) e una regola di routing.

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

Devi modificare questa configurazione in modo che ProxyEndpoint applichi un criterio di quota (come passaggio di elaborazione) prima che il proxy API esegua qualsiasi altra elaborazione. Se uno sviluppatore ha superato una quota, non vuoi sprecare risorse di calcolo per richieste aggiuntive.

Per applicare questa configurazione, allega un passaggio di elaborazione al PreFlow della richiesta come segue:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

A volte, potresti voler eseguire una norma dopo un'altra elaborazione iniziale su ProxyEndpoint. Ad esempio, vuoi controllare la quota in PreFlow, quindi eseguire un altro insieme di operazioni di elaborazione dopo aver controllato la quota, ad esempio la conversione della richiesta da JSON a XML. Per farlo, associa un criterio al percorso della richiesta PostFlow. Di seguito è riportato un esempio di allegato PostFlow della richiesta. Questo criterio viene eseguito sul messaggio di richiesta dopo l'esecuzione di tutti i criteri in PreFlow (e di eventuali flussi condizionali).

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

Di seguito è riportato un esempio di allegato PostFlow di risposta. Questo criterio verrà eseguito sul messaggio di risposta. Il PostFlow della risposta ProxyEndpoint è la fase di elaborazione finale prima che la risposta venga restituita all'app client richiedente.

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>