Associer une règle à un flux ProxyEndpoint ou TargetEndpoint

Vous consultez la documentation Apigee Edge.
Consulter la documentation d'Apigee X
en savoir plus

Les stratégies ne sont pas exécutées tant qu'elles ne sont pas associées à un flux. Vous pouvez créer un rattachement de stratégies en nommant une stratégie dans une configuration d'étape.

Le choix de point de rattachement est essentiel pour le comportement de votre proxy d'API. Par exemple, si vous associez la stratégie de quota à un flux de réponse, le quota est appliqué après l'envoi du message de requête au service de backend. Cela irait à l'encontre de l'objectif de l'application d'une stratégie de quota. Par conséquent, vous devez associer la stratégie de quota en tant qu'étape de traitement sur le flux de la requête.

Le format d'un rattachement de règle est le suivant :

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

Exemple :

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

Une règle est associée à un flux en ajoutant l'étape de configuration à l'élément de flux de requête ou de réponse approprié dans une configuration ProxyEndpoint ou TargetEndpoint.

Vous pouvez associer une règle à un flux de requêtes ou de réponses. Les flux de requêtes et de réponses sont subdivisés en PreFlow et PostFlow.

L'exemple suivant montre la configuration minimale du proxyEndpoint, sans rattachement de règles. Il définit simplement les éléments HTTPProxyConnection (entrante) et RouteRule

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

Vous devez modifier cette configuration afin que l'élément ProxyEndpoint applique une règle de quota (en tant qu'étape de traitement) avant que le proxy d'API effectue un autre traitement. Si un développeur a dépassé un quota, vous voudrez éviter de perdre de ressources de calcul pour des requêtes supplémentaires.

Pour appliquer cette configuration, vous devez associer une étape de traitement au PreFlow de la requête, comme suit :

<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>

Vous pouvez parfois avoir besoin d'exécuter une stratégie après un autre traitement initial sur le point de terminaison Proxy. Par exemple, vous souhaitez vérifier le quota dans le PreFlow, puis exécuter un autre ensemble de traitement une fois le quota vérifié, par exemple la conversion de la requête en JSON en XML. Pour ce faire, associez une stratégie au chemin de requête PostFlow. Voici un exemple de rattachement PostFlow de requête. Cette stratégie s'exécute sur le message de requête après l'exécution de toutes les stratégies PreFlow (et de tout flux conditionnel).

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

Voici un exemple de rattachement PostFlow de réponse. Cette règle s'exécute sur le message de réponse. (Le PostFlow de réponse ProxyEndpoint est la dernière étape de traitement avant que la réponse ne soit renvoyée à l'application cliente demandeur.)

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