Dołączanie zasady do punktu końcowego ProxyEnd lub docelowego punktu końcowego

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Zasady nie są wykonywane, dopóki nie zostaną dołączone do przepływu. Możesz utworzyć dołączenie zasady , nazywając zasadę w konfiguracji kroku.

Wybór punktu dołączenia ma kluczowe znaczenie dla działania serwera proxy interfejsu API. Jeśli na przykład dołączysz zasadę dotyczącą limitu do przepływu odpowiedzi, limit będzie egzekwowany po wysłaniu wiadomości z żądaniem do usługi backendu. To zniweczyłoby cel stosowania zasady dotyczącej limitu . Dlatego musisz dołączyć zasadę dotyczącą limitu jako krok przetwarzania w przepływie żądania.

Format dołączenia zasady jest taki:

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

Na przykład:

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

Zasada jest dołączana do przepływu przez dodanie konfiguracji kroku do odpowiedniego elementu przepływu żądania lub odpowiedzi w konfiguracji ProxyEndpoint lub TargetEndpoint.

Zasadę możesz dołączyć do przepływu żądania lub odpowiedzi. Przepływy żądań i odpowiedzi są dodatkowo podzielone na PreFlow i PostFlow.

Poniższy przykład przedstawia minimalną konfigurację ProxyEndpoint bez dołączonych zasad. Definiuje ona tylko (przychodzące) HTTPProxyConnection i RouteRule.

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

Musisz zmodyfikować tę konfigurację, aby ProxyEndpoint egzekwował zasadę dotyczącą limitu (jako krok przetwarzania) zanim serwer proxy interfejsu API wykona jakiekolwiek inne przetwarzanie. Jeśli deweloper przekroczył limit, nie chcesz marnować zasobów obliczeniowych na dodatkowe żądania.

Aby wymusić tę konfigurację, dołącz krok przetwarzania do PreFlow żądania w ten sposób:

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

Czasami możesz chcieć, aby zasada była wykonywana po wstępnym przetworzeniu w ProxyEndpoint. Na przykład chcesz sprawdzić limit w PreFlow, a następnie wykonać inny zestaw przetwarzania po sprawdzeniu limitu, np. przekonwertować żądanie z formatu JSON na XML. Aby to zrobić, dołącz zasadę do ścieżki żądania PostFlow. Poniżej znajdziesz przykładowe dołączenie do PostFlow żądania. Ta zasada będzie wykonywana w wiadomości z żądaniem po wykonaniu wszystkich zasad w PreFlow (i wszystkich przepływów warunkowych).

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

Poniżej znajdziesz przykładowe dołączenie do PostFlow odpowiedzi. Ta zasada będzie wykonywana w wiadomości z odpowiedzią. (PostFlow odpowiedzi ProxyEndpoint to ostatnia faza przetwarzania przed zwróceniem odpowiedzi do aplikacji klienta wysyłającej żądanie).

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