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.

Le policy non vengono eseguite finché non vengono associate a un flusso. Puoi creare un allegato di policy assegnando un nome a una policy nella configurazione di un passaggio.

La scelta del punto di collegamento è fondamentale per il comportamento del proxy API. Ad esempio, se colleghi il criterio Quota a un flusso di risposta, la quota verrà applicata dopo l'invio del messaggio di richiesta al servizio di backend. In questo modo, lo scopo dell'applicazione di un criterio per le quote non verrebbe raggiunto. Pertanto, devi allegare le norme relative alle quote come passaggio di elaborazione nel flusso di richiesta.

Il formato di un allegato di 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 allegare una policy a un flusso di richiesta o risposta. I flussi request e response sono ulteriormente suddivisi in PreFlow e PostFlow.

L'esempio seguente mostra la configurazione minima di ProxyEndpoint, senza allegati di policy. Definisce semplicemente 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 ProxyEndpoint applichi una policy 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, collega un passaggio di elaborazione al pre-flusso 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 nel pre-flusso, quindi eseguire un altro insieme di elaborazioni dopo il controllo della quota, ad esempio convertire la richiesta da JSON a XML. Per farlo, collega una policy al percorso della richiesta PostFlow. Di seguito è riportato un esempio di allegato PostFlow. Questa norma verrà eseguita sul messaggio di richiesta dopo l'esecuzione di tutte le norme nel 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 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>