Esta página se aplica à Apigee e à Apigee híbrida.
  
    Confira a documentação da 
    Apigee Edge.
  
  
       
  
Em um fluxo condicional,
  as políticas são executadas apenas se a condição do fluxo é avaliada como
  true, diferente das políticas anexadas ao PreFlow ou ao PostFlow,
  que são sempre executadas. Nesta seção, descrevemos como criar um fluxo condicional.
Sobre fluxos condicionais
Durante o processamento de uma solicitação e uma resposta, somente um fluxo condicional é executado por
  segmento: o primeiro fluxo com uma condição avaliada como true.
||(OR) e &&(AND).  No entanto, por padrão, o operador || tem precedência maior que o operador &&. Por exemplo, uma condição escrita
como  A && B || C && D é avaliada como A && (B || C) && D. Coloque a expressão entre parênteses se quiser mudar a precedência ao usar esses operadores.
  Os exemplos a seguir ilustram algumas maneiras de usar fluxos condicionais.
Exemplo 1
A definição de ProxyEndpoint a seguir mostra um fluxo condicional que é executado
  pelo ProxyEndpoint em qualquer solicitação HTTP GET para o proxy de API:
<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>Observe que a condição faz referência à
  variável de
  fluxo request.verb. Uma variável de fluxo é nomeada com referências que armazenam informações de estado associadas
  a uma transação de API processada pela Apigee. A Apigee define muitas variáveis de estado que podem ser
  referenciadas.
Exemplo 2
Se o
  back-end do serviço fornecer relatórios meteorológicos e previsões do tempo, sua API poderá definir dois
  fluxos condicionais que mapeiam esses recursos da
  API: /reports e /forecasts. Quando uma chamada de API
  inclui um desses recursos no URL, a condição é avaliada como verdadeira, e a lógica
  anexada ao fluxo condicional é executada.
Em seguida, os desenvolvedores de aplicativos acessam seus recursos fazendo solicitações a um URL no formulário:
http://myAPIs.myCo.com/weather/reports
ou
http://myAPIs.myCo.com/weather/forecasts
Em um proxy de API, defina um fluxo condicional que corresponda a um recurso específico:
<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>Neste exemplo, você faz referência à variável de fluxo proxy.pathsuffix,
  que contém a parte do sufixo do URL usado para acessar o proxy de API. Depois, você pode anexar
  políticas diferentes ao fluxo condicional para cada recurso.
Exemplo: como criar um fluxo condicional
O próximo exemplo:
- Cria um fluxo condicional executado apenas quando a mensagem de solicitação
  é um GETHTTP.
- Adiciona uma política ao novo fluxo.
Como adicionar um fluxo condicional
Apigee no console do Cloud
Para adicionar um fluxo condicional, faça o seguinte:
- Selecione a guia Develop no Proxy Editor.
- Selecione Proxy endpoints > default no painel à esquerda.
       Observação: talvez seja necessário expandir o editor visual no painel à direita para ver todos os elementos. Para fazer isso, clique e arraste um pouco o divisor entre o editor visual e o editor de texto. 
- Clique no botão + acima do painel Resposta.
      
- Na caixa de diálogo Adicionar fluxo condicional, selecione Caminho e verbo e, no campo Caminho, insira o sufixo de caminho que quer que esteja no caminho da solicitação para que o fluxo condicional seja executado. Veja o Exemplo 2 acima
    
     O fluxo condicional só é executado se a solicitação for um GET, mas não paraPUT,POSTetc.O novo fluxo, chamado Flow-1, agora aparece no painel Endpoint de proxy. 
- O código XML do novo fluxo condicional é exibido no editor de texto.  
Você pode editar o elemento Condição, se quiser. Consulte Como adicionar lógica aos fluxos.
Como anexar uma política ao fluxo
Agora que você criou o fluxo condicional, pode anexar uma política a ele. O próximo exemplo adiciona uma política de cotas, que restringe o número de mensagens de solicitação permitidas por um proxy de API durante um período:
- No painel à esquerda, clique no botão + à direita de Políticas.
- Na caixa de diálogo Criar política, clique no campo Selecionar tipo de política e role para baixo até Gerenciamento de tráfego e selecioneCota.
- Clique em Criar para criar a política.
- Clique no botão + ao lado de Flow-1 no painel Solicitação.
       
- Na caixa de diálogo Adicionar política, clique no campo Selecionar política existente e selecione Cota 1.
- Clique em Adicionar.
O painel Solicitação agora exibe o fluxo e a política anexada, Cota-1.

O editor de texto agora exibe uma etapa que contém a política Quota-1 no elemento Flow-1 do XML:

Com essa configuração, a política de cotas será aplicada para solicitações GET.
  As solicitações de outros tipos não contribuem para o número máximo de solicitações na política de cotas.
  
IU clássica
Para adicionar um fluxo condicional, selecione a guia Desenvolvimento no criador de proxy de API.

Clique em  no endpoint desejado.
 no endpoint desejado.

O formulário Novo fluxo condicional permite nomear o fluxo e configurar uma condição. No
  exemplo a seguir, você adiciona uma condição simples que avalia o HTTP da mensagem de solicitação para um
  verbo GET (em oposição a PUT, POST etc.) em qualquer URI depois do caminho base.

Saiba como criar instruções condicionais em Condições com variáveis de fluxo.
O novo fluxo, chamado Flow-1, agora aparece no menu do navegador.

Agora, observe a configuração XML do ProxyEndpoint. Selecione Flow-1 no menu do Navigator.
Você verá a seguinte configuração.
<PreFlow name="PreFlow">
    <Request/>
    <Response/>
</PreFlow>
<Flows>
  <Flow name="Flow-1">
    <Request/>
    <Response/>
    <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
  </Flow>
</Flows>
<PostFlow name="PostFlow">
  <Request/>
  <Response/>
</PostFlow>Depois de criar um fluxo condicional, ele ficará disponível para o anexo de política. Com o fluxo selecionado, clique no ícone + Etapa no diagrama de solicitação ou resposta para adicionar uma política nova ou atual ao fluxo.


Ao anexar a política ao fluxo selecionado, você configura o proxy de API para impor a política de cotas apenas para solicitações feitas a essa combinação de URI e verbo de fluxo. Por exemplo, se você anexar a política ao fluxo learn na solicitação, o seguinte XML será gerado no editor de texto:
<ProxyEndpoint name="default">
...
   <Flow name="issue">
        <Description/>
        <Request>
            <Step>
                <Name>Quota-2</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
    </Flow>
...
</ProxyEndpoint>Nesta configuração, se uma solicitação GET chegar ao proxy de API com um padrão de
  URI de .../issue/** (/issue/ com tudo no URI após a última
  barra), a cota será aplicada nessa chamada de API.
Próximas etapas
Os tópicos a seguir fornecem mais detalhes sobre a construção de condições e o uso de variáveis: