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

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

I criteri non vengono eseguiti finché non vengono collegati a un flusso. Puoi creare un allegato del criterio assegnando un nome a un criterio nella configurazione di un 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 dopo l'invio del messaggio di richiesta al servizio di backend. Ciò annullerebbe 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 dell'allegato di un criterio è:

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

Ad esempio:

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

Un criterio viene associato a un flusso aggiungendo la configurazione Step all'elemento Flow 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 di ProxyEndpoint, senza collegamenti ai criteri. Definisce semplicemente HTTPProxyConnection (in entrata) e RouteRules.

<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 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 le richieste aggiuntive.

Per applicare questa configurazione, aggiungi 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 necessario eseguire un criterio dopo altre elaborazioni iniziali su ProxyEndpoint. Ad esempio, vuoi controllare la quota in PreFlow, quindi eseguire un altro insieme di elaborazione dopo il controllo della quota, ad esempio convertire la richiesta da JSON in XML. Per farlo, collega un criterio al percorso di richiesta PostFlow. Di seguito è riportato un esempio di allegato PostFlow a una richiesta. Questo criterio viene eseguito nel messaggio di richiesta dopo l'esecuzione di tutti i criteri in PreFlow (e di tutti i flussi condizionali).

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

Di seguito è riportato un esempio di allegato PostFlow di risposta. Questo criterio viene eseguito nel messaggio di risposta. (la risposta ProxyEndpoint PostFlow è la fase di elaborazione finale prima che la risposta venga restituita all'app client richiedente).

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