Collegamento di un criterio a un ProxyEndpoint o a un flusso TargetEndpoint

Questa pagina si applica a Apigee e Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

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

La scelta del punto di collegamento è fondamentale per il comportamento del proxy API. Ad esempio, se colleghi il criterio per le quote a un flusso di risposta, la quota verrà applicata in modo forzato dopo l'invio del messaggio di richiesta al servizio di backend. Ciò supererebbe lo scopo di applicare un criterio per le quote. Di conseguenza, devi collegare il criterio per le quote come passaggio di elaborazione nel flusso di richiesta.

Il formato di un allegato ai criteri è:

<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 di flusso di richiesta o risposta appropriato in una configurazione ProxyEndpoint o TargetEndpoint.

Puoi collegare 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 del ProxyEndpoint, senza collegamenti di criteri. Definisce semplicemente la connessione HTTPProxyConnection (in entrata) e una RouteRule.

<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 il ProxyEndpoint applichi un criterio per le quote (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, collega 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, potrebbe essere utile eseguire un criterio dopo un'altra elaborazione iniziale sul ProxyEndpoint. Ad esempio, vuoi controllare la quota in PreFlow, quindi eseguire un altro set di elaborazione dopo il controllo della quota, come convertire la richiesta da JSON a XML. Per farlo, collega un criterio al percorso di richiesta PostFlow. Di seguito è riportato un esempio di allegato PostFlow di una richiesta. Questo criterio viene eseguito nel messaggio di richiesta dopo l'esecuzione di tutti i criteri in PreFlow (ed di eventuali flussi condizionali).

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

Di seguito è riportato un esempio di allegato PostFlow di una risposta. Questo criterio viene 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>