Como anexar uma política a um fluxo ProxyEndpoint ou TargetEndpoint

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

As políticas não são executadas até que sejam anexadas a um fluxo. Você pode criar um anexo de política nomeando uma política em uma configuração de etapa.

A escolha do ponto de anexo é essencial para o comportamento do proxy da API. Por exemplo, se você anexar a política de cota a um fluxo de resposta, a cota será aplicada depois da mensagem de solicitação ter sido enviada para o serviço de back-end. Isso anularia o propósito de aplicar uma política de cotas. Portanto, é preciso anexar a política de cotas como uma etapa de processamento no fluxo de solicitação.

O formato de um anexo de política é:

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

Exemplo:

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

Uma política é anexada a um fluxo adicionando a configuração de etapa ao elemento apropriado do fluxo de solicitação ou resposta em uma configuração de ProxyEndpoint ou TargetEndpoint.

É possível anexar uma política a um fluxo de resposta ou solicitação. Os fluxos de solicitação e resposta são subdivididos em PreFlow e PostFlow.

No exemplo a seguir, demonstramos a configuração mínima de ProxyEndpoint sem anexos de política. Ele simplesmente define o HTTPProxyConnection (entrada) e uma RouteRule.

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

Você precisa modificar essa configuração para que o ProxyEndpoint aplique uma política de cota (como uma etapa de processamento) antes que o proxy da API realize qualquer outro processamento. Se um desenvolvedor tiver excedido uma cota, não convém desperdiçar recursos computacionais em solicitações adicionais.

Para aplicar essa configuração, anexe uma etapa de processamento ao PreFlow da solicitação da seguinte maneira:

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

Às vezes, é conveniente que uma política seja executada após outro processamento inicial no ProxyEndpoint. Por exemplo, verifique a cota no PreFlow e execute outro conjunto de processamento após a cota ser verificada, como a conversão da solicitação de JSON para XML. Para fazer isso, anexe uma política ao caminho da solicitação PostFlow. Veja a seguir um exemplo de anexo do PostFlow de solicitação. Essa política é executada na mensagem de solicitação depois que todas as políticas no PreFlow (e em quaisquer fluxos condicionais) são executadas.

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

Veja a seguir um exemplo de anexo PostFlow de resposta. Essa política seria executada na mensagem de resposta. O PostFlow de resposta ProxyEndpoint é a fase de processamento final antes que a resposta seja retornada ao aplicativo cliente solicitante.

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