Como criar fluxos compartilhados reutilizáveis

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Combine políticas e recursos em um fluxo compartilhado que você possa consumir de vários proxies de API e até mesmo de outros fluxos compartilhados. Ele é semelhante a um proxy, mas um fluxo compartilhado não tem um endpoint. É possível usá-lo somente de um proxy de API ou fluxo compartilhado que esteja na mesma organização do fluxo compartilhado.

Ao capturar em um lugar a funcionalidade que é útil em vários lugares, um fluxo compartilhado a garantir consistência, diminuir o tempo de desenvolvimento e gerenciar o código com mais facilidade.

O vídeo a seguir mostra como criar e depurar um fluxo compartilhado na interface da Apigee.

Para chamar um fluxo compartilhado, use a política FlowCallout. Além disso, ao anexar um fluxo compartilhado a um gancho de fluxo, é possível fazer com que o fluxo compartilhado seja executado antes de um proxy ou de uma solicitação de destino, ou depois de um proxy ou deuma resposta de destino.

Para referência sobre a política do FlowCallout, consulte a política FlowCallout. Para mais informações sobre ganchos de fluxo, consulte Como anexar um fluxo compartilhado usando um gancho de fluxo.

Por exemplo, imagine que você tem áreas de funcionalidade que são usadas em vários lugares ou precisam ser padronizadas em todas as APIs da sua organização. É possível ter um fluxo compartilhado para cada categoria, incluindo:

  • Segurança, com código de autorização usando OAuth e verificação de chave de API, além de código de proteção contra ameaças.
  • Geração de registros, para gerar mensagens de erro padrão.
  • Mediação, para transformação entre os formatos de mensagem XML e JSON.

Na ilustração a seguir, dois proxies de API chamam (com uma política FlowCallout) para um fluxo compartilhado para autenticar solicitações recebidas de usuários. O AuthSharedFlow foi implantado separadamente na organização, antes dos proxies, para que fique disponível e atenda às solicitações dos proxies. Um fluxo compartilhado pode ser desenvolvido e gerenciado por uma equipe responsável por políticas amplas da empresa e, então, consumidos em proxies por equipes de linha de negócios que criam aplicativos mais especializados.

Diagrama de fluxo mostrando a política POST /foodcarts para a política POST /menus do AuthSharedFlow.
          Texto da chamada:
          a) vários proxies de API consomem o fluxo compartilhado via FlowCallouts.
          b) As políticas FlowCallout fazem chamadas de proxies de API para fluxo compartilhado.
          c) Um pacote de fluxo compartilhado contém lógica reutilizável como políticas e recursos.

Como desenvolver um fluxo compartilhado

Ao desenvolver um fluxo compartilhado, é sempre necessário testá-lo com chamadas enviadas a um proxy da API. Em outras palavras, não é possível enviar solicitações diretamente para um fluxo compartilhado como você faria com um proxy de API. Em vez disso, você envia solicitações para um proxy de API que, por sua vez, chama o fluxo compartilhado.

Veja as etapas gerais para o desenvolvimento de um fluxo compartilhado:

  1. Descubra qual deve ser o conjunto compartilhado de recursos.

    Por exemplo, convém combinar recursos de gerenciamento de tráfego, incluindo a supressão de picos. Dessa forma, é possível gerenciar a configuração fora do fluxo de trabalho daqueles que implementam a lógica de linha de negócios.

  2. Desenvolver um fluxo compartilhado implementando políticas e recursos de suporte da mesma forma que faria ao desenvolver um proxy de API.

    Um fluxo compartilhado é uma sequência de passos condicionais. Portanto, desenvolver um é como desenvolver um proxy de API. É possível incluir políticas e recursos que podem ser incluídos em um proxy.

    Por exemplo, como parte do suporte ao gerenciamento de tráfego, é possível implementar uma política do Spike Arrest para permitir apenas 30 solicitações por segundo, como no exemplo a seguir:

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
    

    Em seguida, em um fluxo compartilhado para o gerenciamento de tráfego, você tem a opção de anexar a política Spike Arrest como um passo. A política é executada para qualquer proxy de API que chama o fluxo compartilhado.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>
    

    Para informações sobre como iniciar um fluxo compartilhado no console de gerenciamento, consulte Como criar um fluxo compartilhado na IU da Apigee.

    Assim como nos proxies de API, é possível importar um arquivo ZIP com os artefatos da fonte de fluxo compartilhado usando Criar API de fluxo compartilhado. Veja a seguir como importar um fluxo compartilhado com a API Apigee:

    curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&sharedFlowID=mySharedFlow" \
      -X POST \
      -F "file=@sharedflow.zip" \
      -H "Authorization: Bearer $TOKEN"
    

    Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

  3. Implante o fluxo compartilhado no ambiente antes de implantar os proxies ou fluxos compartilhados que o consumirão. Você implanta um fluxo compartilhado da mesma maneira que um proxy de API. Para mais informações, consulte a Visão geral da implantação.

    Um fluxo compartilhado precisa estar na mesma organização e implantado no mesmo ambiente que os proxies da API e outros fluxos compartilhados que o consomem. Implantar o fluxo compartilhado antes que os proxies possibilita resolver a dependência do proxy no fluxo compartilhado no momento da implantação.

    É possível implantar um fluxo compartilhado com uma chamada da API Apigee como a seguinte:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/sharedflows/$SHAREDFLOW/revisions/$REV/deployments \
      -X POST \
      -H "Authorization: Bearer $TOKEN"

    Assim como os proxies de API, todas as implantações de fluxo compartilhado bem-sucedidas para a Apigee são implantações sem inatividade.

  4. Desenvolva o proxy de API de consumo para que ele possa chamar o fluxo compartilhado como parte do próprio fluxo.

    Em um proxy de API, você chama um fluxo compartilhado com uma política FlowCallout. Também é possível anexar o fluxo compartilhado ao proxy usando um hook de fluxo.

    Para consumir um fluxo compartilhado, adicione uma política FlowCallout ao proxy ou fluxo compartilhado que a consumirá. Como acontece com uma política de chamada de serviço (usada para chamar outro serviço), uma FlowCallout chama o fluxo compartilhado. O proxy de API de consumo precisa ser implantado após o fluxo compartilhado e no mesmo ambiente dele. O fluxo compartilhado precisa estar em vigor quando você quer testar uma chamada usando a política FlowCallout.

    No código a seguir, uma política FlowCallout chama um fluxo compartilhado de nome traffic-management-shared.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>
    

    Para mais informações, consulte Como chamar um fluxo compartilhado de um proxy de API ou fluxo compartilhado

  5. Implante o proxy de API de consumo para começar a usar o fluxo compartilhado. Para saber mais sobre a implantação em geral, consulte a Visão geral da implantação.
  6. Desenvolva de forma iterativa, rastreando como faria com um proxy de API.

    Assim como em um proxy de API, você desenvolve um fluxo compartilhado invocando e rastreando iterativamente até ter a lógica do jeito que quiser. Nesse caso, como o fluxo compartilhado não é executado por conta própria, invoque um endpoint de proxy e depure o proxy.

    Siga estas etapas:

    1. Verifique se o fluxo compartilhado e o proxy de API que faz a chamada com uma política FlowCallout estão na mesma organização e implantados no mesmo ambiente.
    2. Na guia Trace do proxy de API, comece a rastrear o proxy de API.
    3. Envie uma solicitação para um endpoint de proxy no proxy da API. O fluxo do endpoint precisa incluir a política FlowCallout que chama o fluxo compartilhado.
    4. Na guia Trace, examine o fluxo do proxy de API para o fluxo compartilhado.

      No rastreamento, o fluxo compartilhado é representado como um conjunto de passos ou políticas incluídas em uma caixa cinza. Os ícones que representam as políticas FlowCallout precedem os fluxos compartilhados. (Para saber mais sobre rastreamento, consulte Ferramenta Debug.)

      Mapa de transações.  Texto da chamada:
            a) A política FlowCallout chama o fluxo compartilhado.
            b) O fluxo compartilhado inclui uma política SpikeArrest e uma política FlowCallout.
            A política FlowCallout chama outro fluxo compartilhado com uma política VerifyAPIKey.

Como criar um fluxo compartilhado na IU da Apigee

Ao usar a API Apigee para criar um fluxo compartilhado, é possível criar um do zero ou importar as origens de fluxo atuais como um arquivo zip do pacote de fluxos.

Acesse a página Fluxos Compartilhados, conforme descrito abaixo. Na página Shared Flows, é possível ver uma lista de fluxos compartilhados na organização e editá-los ou excluí-los na lista.

Para criar um fluxo compartilhado na IU da Apigee:

  1. Faça login na IU da Apigee.
  2. Selecione a organização que contém seu fluxo compartilhado. Consulte Como alternar entre suas organizações.

    O fluxo compartilhado estará disponível para todos os proxies de API e fluxos compartilhados implantados em um ambiente dessa organização. Ele não estará disponível fora desta organização.

  3. Selecione Desenvolver > Fluxos compartilhados na barra de navegação à esquerda.
  4. Criar ou fazer upload de um fluxo compartilhado:
    • Clique em Criar novo para criar um novo fluxo do zero. Você poderá configurar políticas e recursos como etapas do fluxo.

      A caixa de diálogo Criar um fluxo compartilhado é exibida.

      1. Insira o nome do fluxo compartilhado.

        Esse será o nome que os proxies de API e outros fluxos compartilhados usarão para se referir a ele. O nome precisa ser descritivo para os desenvolvedores que consomem o fluxo.

      2. Insira uma descrição para fornecer mais informações sobre o que o fluxo faz.
      3. Clique em Criar.

        O fluxo compartilhado está criado.

      4. Em seguida, desenvolva os recursos de fluxo compartilhado e implante-o no ambiente pretendido.
    • Clique em Fazer upload do pacote para criar um fluxo compartilhado a partir de origens existentes por meio do upload de um pacote de fluxo.

      Um pacote de fluxos compartilhados contém os artefatos de origem de um fluxo compartilhado. Por exemplo, se você fizer o download de um fluxo compartilhado da IU da Apigee, terá um arquivo .zip com o pacote de fluxos.

      A caixa de diálogo Criar um fluxo compartilhado é exibida.

      1. Selecione o arquivo ZIP contendo os artefatos que você quer no novo fluxo.
      2. Clique em Abrir.
      3. Insira um nome para o fluxo compartilhado importado.

        Esse será o nome que os proxies de API e outros fluxos compartilhados usarão para se referir a ele. O nome precisa ser descritivo para os desenvolvedores que consomem o fluxo.

      4. Clique em Criar.

        O fluxo compartilhado é criado a com base no pacote.

      5. Em seguida, desenvolva os recursos de fluxo compartilhado e implante-o no ambiente pretendido.

Como chamar um fluxo compartilhado a partir de um proxy de API ou fluxo compartilhado

É possível chamar um fluxo compartilhado de um proxy ou de outro fluxo compartilhado usando a política FlowCallout.

  1. Na IU da Apigee, abra o proxy da API ou o fluxo compartilhado a partir do qual você quer chamar o fluxo compartilhado.
  2. Clique na guia Desenvolver.
  3. No Navegador, ao lado de Políticas, clique em +.
  4. Na lista de políticas, em Extensão, clique em FlowCallout.
  5. Digite o nome de exibição e o nome (identificador único) e selecione o fluxo compartilhado que a política chamará.
  6. Clique em Add.
  7. Adicione a nova política FlowCallout ao proxy onde você quer fazer a chamada.

Consulte também

Como encadear proxies de API