Anexar uma política a um fluxo ProxyEndpoint ou TargetEndpoint

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

As políticas não são executadas até serem anexadas a um fluxo. Pode criar um anexo de política atribuindo um nome a uma política numa configuração de passo.

A escolha do ponto de associação é fundamental para o comportamento do seu proxy de API. Por exemplo, se anexar a política de quota a um fluxo de resposta, a quota é aplicada depois de a mensagem de pedido ser enviada para o serviço de back-end. Isso anularia a finalidade de aplicar uma política de quotas! Por conseguinte, tem de anexar a política de quotas como um passo de processamento no fluxo de pedidos.

O formato de um anexo de política é:

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

Por exemplo:

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

Uma política é anexada a um fluxo adicionando a configuração do passo ao elemento de fluxo de pedido ou resposta adequado numa configuração de ProxyEndpoint ou TargetEndpoint.

Pode anexar uma política a um fluxo de pedidos ou respostas. Os fluxos de pedidos e respostas são ainda subdivididos em PreFlow e PostFlow.

O exemplo seguinte demonstra a configuração mínima do ProxyEndpoint, sem anexos de políticas. Define simplesmente o HTTPProxyConnection (de entrada) e uma RouteRule.

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

Tem de modificar esta configuração para que o ProxyEndpoint aplique uma política de quota (como um passo de processamento) antes de o proxy de API realizar qualquer outro processamento. Se um programador tiver excedido uma quota, não quer desperdiçar recursos computacionais em pedidos adicionais.

Para aplicar esta configuração, anexe um passo de processamento ao PreFlow do pedido da seguinte forma:

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

Por vezes, pode querer que uma política seja executada após algum outro processamento inicial no ProxyEndpoint. Por exemplo, quer verificar a quota no PreFlow e, em seguida, realizar outro conjunto de processamento após a verificação da quota, como converter o pedido de JSON para XML. Para tal, anexe uma política ao caminho do pedido PostFlow. Segue-se um exemplo de um pedido de anexo PostFlow. Esta política é executada na mensagem de pedido depois de todas as políticas no PreFlow (e quaisquer fluxos condicionais) serem executadas.

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

Segue-se um exemplo de resposta de anexo do PostFlow. Esta política seria executada na mensagem de resposta. (O PostFlow da resposta ProxyEndpoint é a fase de processamento final antes de a resposta ser devolvida à app cliente que fez o pedido.)

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