Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Политики не выполняются до тех пор, пока не будут прикреплены к потоку. Вы можете создать прикрепленную политику, указав имя политики в конфигурации шага.
Выбор точки прикрепления имеет решающее значение для работы вашего API-прокси. Например, если вы прикрепите политику квот к потоку ответа, то квота будет применяться после отправки запроса в бэкэнд-сервис. Это противоречит цели применения политики квот! Поэтому вам необходимо прикрепить политику квот в качестве этапа обработки в потоке запроса.
Формат приложения к полису следующий:
<Step>
<Name>{policy_name}</Name>
</Step>Например:
<Step>
<Name>QuotaPolicy</Name>
</Step>Политика прикрепляется к потоку путем добавления конфигурации шага к соответствующему элементу потока запроса или ответа в конфигурации ProxyEndpoint или TargetEndpoint.
К потоку запроса или ответа можно прикрепить политику. Потоки запроса и ответа, в свою очередь, подразделяются на предварительный поток (PreFlow) и последующий поток (PostFlow).
В следующем примере показана минимальная конфигурация ProxyEndpoint без каких-либо прикрепленных политик. Она просто определяет (входящее) HTTPProxyConnection и RouteRule.
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/weather</BasePath>
<VirtualHost>default</VirtualHost>
</HTTPProxyConnection>
<RouteRule name="default">
<TargetEndpoint>default</TargetEndpoint>
</RouteRule>
</ProxyEndpoint>Необходимо изменить эту конфигурацию таким образом, чтобы ProxyEndpoint применял политику квотирования (в качестве этапа обработки) до того, как API-прокси выполнит какую-либо другую обработку. Если разработчик превысил квоту, не следует тратить вычислительные ресурсы на дополнительные запросы.
Для обеспечения выполнения этой конфигурации необходимо добавить этап обработки к предварительному потоку запроса следующим образом:
<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>Иногда может потребоваться, чтобы политика выполнялась после какой-либо другой первоначальной обработки на ProxyEndpoint. Например, вы хотите проверить квоту в PreFlow, а затем выполнить еще один набор операций после проверки квоты, например, преобразовать запрос из JSON в XML. Для этого прикрепите политику к пути запроса PostFlow. Ниже приведен пример прикрепления политики к запросу PostFlow. Эта политика будет выполняться для сообщения запроса после выполнения всех политик в PreFlow (и любых условных потоков).
<PostFlow>
<Request>
<Step><Name>JSONtoXMLPolicy</Name></Step>
</Request>
</PostFlow>Ниже прилагается пример PostFlow для обработки ответа. Эта политика будет выполняться для полученного ответного сообщения. (PostFlow для обработки ответа ProxyEndpoint — это заключительный этап обработки перед отправкой ответа запрашивающему клиентскому приложению.)
<PostFlow>
<Response>
<Step><Name>XMLtoJSONPolicy</Name></Step>
</Response>
</PostFlow>