Criar fluxos partilhados reutilizáveis

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

Veja a documentação do Apigee Edge.

Combine políticas e recursos num fluxo partilhado que pode consumir a partir de vários proxies de API e até de outros fluxos partilhados. Embora seja semelhante a um proxy, um fluxo partilhado não tem um ponto final. Só pode ser usado a partir de um proxy de API ou de um fluxo partilhado que esteja na mesma organização que o próprio fluxo partilhado.

Ao captar num único local a funcionalidade útil em vários locais, um fluxo partilhado ajuda a garantir a consistência, reduzir o tempo de desenvolvimento e gerir o código mais facilmente.

O vídeo seguinte demonstra como criar e depurar um fluxo partilhado na IU do Apigee.

Pode chamar um fluxo partilhado através da política FlowCallout. Além disso, ao anexar um fluxo partilhado a um ponto de ligação de fluxo, pode fazer com que o fluxo partilhado seja executado antes de um pedido de proxy ou de destino, ou depois de uma resposta de proxy ou de destino.

Para referência à política FlowCallout, consulte a política de FlowCallout. Para mais informações sobre os pontos de união de fluxos, consulte o artigo Anexe um fluxo partilhado através de um ponto de união de fluxos.

Por exemplo, imagine que tem áreas de funcionalidade que são usadas em vários locais ou têm de ser padronizadas em todas as APIs na sua organização. Pode ter um fluxo partilhado para cada categoria, incluindo:

  • Segurança, com código de autorização através da validação da chave de API e do OAuth, bem como código de proteção contra ameaças.
  • Registo, para gerar mensagens de erro padrão.
  • Mediação, para transformar entre formatos de mensagens XML e JSON.

Na ilustração seguinte, dois proxies de API fazem uma chamada (com uma política FlowCallout) para um fluxo partilhado para autenticar os pedidos de utilizadores recebidos. O AuthSharedFlow foi implementado separadamente na organização antes dos proxies para que esteja disponível para pedidos de apoio técnico dos proxies. Um fluxo partilhado pode ser desenvolvido e gerido por uma equipa responsável pelas políticas gerais da empresa e, em seguida, usado em proxies por equipas de linhas de negócio que criam apps mais especializadas.

Diagrama de fluxo que mostra a política POST /foodcarts para a política POST /menus para AuthSharedFlow.
          Texto destacado:
          a) Vários proxies de API consomem o fluxo partilhado através de FlowCallouts.
          b) As políticas FlowCallout fazem chamadas de proxies de API para o fluxo partilhado.
          c) O conjunto de fluxos partilhados contém lógica reutilizável como políticas e recursos.

Desenvolver um fluxo partilhado

Quando desenvolve um fluxo partilhado, tem sempre de o testar com chamadas enviadas para um proxy de API. Por outras palavras, não pode enviar pedidos diretamente para um fluxo partilhado como faria para um proxy de API. Em alternativa, envia pedidos para um proxy de API que, por sua vez, está a chamar o fluxo partilhado.

Seguem-se os passos gerais para desenvolver um fluxo partilhado:

  1. Determinar qual deve ser o conjunto partilhado de funcionalidades.

    Por exemplo, pode querer combinar funcionalidades de gestão de tráfego, incluindo a supressão de picos de tráfego. Desta forma, pode gerir a configuração fora do fluxo de trabalho dos que implementam a lógica de negócio.

  2. Desenvolva um fluxo partilhado implementando políticas e recursos de apoio técnico, tal como faria ao desenvolver um proxy de API.

    Um fluxo partilhado é uma sequência de passos condicionais. Por isso, desenvolver uma é como desenvolver um proxy de API. Pode incluir políticas e recursos que pode incluir num proxy.

    Por exemplo, como parte do seu apoio técnico de gestão de tráfego, pode implementar uma política de Spike Arrest para permitir apenas 30 pedidos por segundo, como no exemplo seguinte:

    <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, para um fluxo partilhado para gestão de tráfego, pode anexar a política Spike Arrest como um passo. A política seria executada para qualquer proxy de API que chamasse o fluxo partilhado.

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

    Para obter informações sobre como iniciar um fluxo partilhado na consola de gestão, consulte o artigo Criar um fluxo partilhado na IU do Apigee.

    Tal como acontece com os proxies de API, pode importar um ficheiro ZIP que contenha os artefactos de origem do fluxo partilhado através da API Create shared flow. A imagem seguinte ilustra como importar um fluxo partilhado com a API Apigee:

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

    Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

  3. Implemente o fluxo partilhado no ambiente antes de implementar proxies ou fluxos partilhados que o vão consumir. Implementa um fluxo partilhado da mesma forma que implementa um proxy de API. (Para mais informações, consulte a vista geral da implementação.)

    Um fluxo partilhado tem de estar na mesma organização e implementado no mesmo ambiente que os proxies de API e outros fluxos partilhados que o consomem. A implementação do fluxo partilhado antes dos proxies permite resolver a dependência do proxy no fluxo partilhado no momento da implementação.

    Pode implementar um fluxo partilhado 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"

    Tal como acontece com os proxies de API, todas as implementações bem-sucedidas de fluxos partilhados no Apigee são implementações sem tempo de inatividade.

  4. Desenvolva o proxy da API de consumo para que possa chamar o fluxo partilhado como parte do seu próprio fluxo.

    A partir de um proxy de API, chama um fluxo partilhado com uma política FlowCallout. (Também pode anexar o fluxo partilhado ao proxy através de um flow hook.)

    Para consumir um fluxo partilhado, adicione uma política FlowCallout ao proxy ou ao fluxo partilhado que o vai consumir. Tal como uma política de indicação de serviço, com a qual faz uma indicação para outro serviço, um FlowCallout faz uma indicação para o fluxo partilhado. O proxy da API de consumo tem de ser implementado depois do fluxo partilhado e no mesmo ambiente que o fluxo partilhado. O fluxo partilhado tem de estar implementado quando quiser testar uma chamada para o mesmo através da política FlowCallout.

    No código seguinte, uma política FlowCallout chama um fluxo partilhado denominado 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 o artigo Chamar um fluxo partilhado a partir de um proxy de API ou de um fluxo partilhado

  5. Implemente o proxy da API de consumo para começar a usar o fluxo partilhado. (Para mais informações sobre a implementação em geral, consulte a vista geral da implementação.)
  6. Desenvolva iterativamente através da depuração, tal como faria com um proxy de API.

    Tal como acontece com um proxy de API, desenvolve um fluxo partilhado invocando e depurando iterativamente até ter a lógica da forma que pretende. Neste caso, uma vez que o fluxo partilhado não é executado de forma autónoma, invoca um ponto final de proxy e depura o proxy.

    Antes de iniciar os passos seguintes, certifique-se de que o fluxo partilhado e o proxy de API que o chama com uma política FlowCallout estão na mesma organização e implementados no mesmo ambiente.

    Apigee na Cloud Console

    1. No separador Depurar do proxy de API, comece a depurar o proxy de API.
    2. Envie um pedido para um ponto final de proxy no proxy de API. O fluxo do ponto final tem de incluir a política FlowCallout que faz referência ao fluxo partilhado.
    3. No separador Depurar, examine o fluxo do proxy da API para o fluxo partilhado. (Para mais informações sobre a depuração, consulte a ferramenta de depuração.)

    Apigee clássico

    1. No separador Rastreio do proxy de API, comece a rastrear o proxy de API.
    2. Envie um pedido para um ponto final de proxy no proxy de API. O fluxo do ponto final tem de incluir a política FlowCallout que faz referência ao fluxo partilhado.
    3. No separador Rastreio, examine o fluxo do proxy da API para o fluxo partilhado.

      Tenha em atenção que, no rastreio, o fluxo partilhado é representado como um conjunto de passos ou políticas incluídos numa caixa cinzenta. Os ícones que representam as políticas de FlowCallout precedem os fluxos partilhados. (Para mais informações sobre a monitorização, consulte a ferramenta de depuração.)

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

Criar um fluxo partilhado na IU do Apigee

Quando usa a API Apigee para criar um fluxo partilhado, pode criá-lo de raiz ou importando origens de fluxo existentes como um ficheiro ZIP de pacote de fluxo.

Aceda à página Fluxos partilhados, conforme descrito abaixo. Na página Fluxos partilhados, pode ver uma lista de fluxos partilhados na organização e editar ou eliminar fluxos na lista.

Para criar um fluxo partilhado na IU do Apigee:

Apigee na Cloud Console

  1. Na Google Cloud consola, aceda à página Desenvolvimento de proxy > Fluxos partilhados.

    Aceda a fluxos partilhados

  2. Selecione a organização que contém o fluxo partilhado. Consulte o artigo Alternar entre as suas organizações.

    O fluxo partilhado vai estar disponível para todos os proxies de API e fluxos partilhados implementados num ambiente desta organização. Não estará disponível fora desta organização.

  3. Crie ou carregue um fluxo partilhado:
    • Clique em Criar para criar um novo fluxo de raiz. Pode configurar políticas e recursos como passos no fluxo.

      É apresentada a caixa de diálogo Criar fluxo partilhado.

      1. Introduza o nome do fluxo partilhado.

        Este será o nome que os proxies de API e outros fluxos partilhados usam para fazer referência a este fluxo partilhado. O nome deve ser descritivo para os programadores que usam o fluxo.

      2. Introduza uma descrição para fornecer mais informações sobre o que o fluxo faz.
      3. Se a sua organização tiver o Apigee Spaces ativado, pode associar o fluxo partilhado a um espaço selecionado na lista de opções disponíveis. Para mais informações, consulte o artigo Vista geral do Apigee Spaces.
      4. Clique em Criar.

        O fluxo partilhado é criado.

      5. Em seguida, pode desenvolver as funcionalidades do fluxo partilhado e implementá-lo no ambiente pretendido.
    • Clique em Carregar pacote para criar um fluxo partilhado a partir de origens existentes carregando um pacote de fluxos.

      Um conjunto de fluxos partilhados contém os artefatos de origem de um fluxo partilhado. Por exemplo, se transferir um fluxo partilhado da consola do Apigee, tem um ficheiro ZIP com o pacote de fluxo.

      É apresentada a caixa de diálogo Criar fluxo partilhado.

      1. Selecione o ficheiro ZIP que contém os artefactos que quer no novo fluxo.
      2. Clique em Abrir.
      3. Introduza um nome para o fluxo partilhado importado.

        Este será o nome que os proxies de API e outros fluxos partilhados usam para fazer referência a este fluxo partilhado. O nome deve ser descritivo para os programadores que consomem o fluxo.

      4. Clique em Criar.

        O fluxo partilhado é criado a partir do pacote.

      5. Em seguida, pode desenvolver as funcionalidades do fluxo partilhado e implementá-lo no ambiente pretendido.

Apigee clássico

  1. Inicie sessão na IU do Apigee.
  2. Selecione a organização que contém o fluxo partilhado. Consulte o artigo Alternar entre as suas organizações.

    O fluxo partilhado vai estar disponível para todos os proxies de API e fluxos partilhados implementados num ambiente desta organização. Não estará disponível fora desta organização.

  3. Selecione Desenvolver > Fluxos partilhados na barra de navegação do lado esquerdo.
  4. Crie ou carregue um fluxo partilhado:
    • Clique em Criar novo para criar um novo fluxo de raiz. Pode configurar políticas e recursos como passos no fluxo.

      É apresentada a caixa de diálogo Criar fluxo partilhado.

      1. Introduza o nome do fluxo partilhado.

        Este será o nome que os proxies de API e outros fluxos partilhados usam para fazer referência a este fluxo partilhado. O nome deve ser descritivo para os programadores que usam o fluxo.

      2. Introduza uma descrição para fornecer mais informações sobre o que o fluxo faz.
      3. Se a sua organização tiver o Apigee Spaces ativado, pode associar o fluxo partilhado a um espaço selecionado na lista de opções disponíveis. Para mais informações, consulte o artigo Vista geral do Apigee Spaces.
      4. Clique em Criar.

        O fluxo partilhado é criado.

      5. Em seguida, pode desenvolver as funcionalidades do fluxo partilhado e implementá-lo no ambiente pretendido.
    • Clique em Carregar pacote para criar um fluxo partilhado a partir de origens existentes carregando um pacote de fluxos.

      Um conjunto de fluxos partilhados contém os artefatos de origem de um fluxo partilhado. Por exemplo, se transferir um fluxo partilhado da IU do Apigee, tem um ficheiro ZIP com o pacote do fluxo.

      É apresentada a caixa de diálogo Criar fluxo partilhado.

      1. Selecione o ficheiro ZIP que contém os artefactos que quer no novo fluxo.
      2. Clique em Abrir.
      3. Introduza um nome para o fluxo partilhado importado.

        Este será o nome que os proxies de API e outros fluxos partilhados usam para fazer referência a este fluxo partilhado. O nome deve ser descritivo para os programadores que consomem o fluxo.

      4. Clique em Criar.

        O fluxo partilhado é criado a partir do pacote.

      5. Em seguida, pode desenvolver as funcionalidades do fluxo partilhado e implementá-lo no ambiente pretendido.

Chamar um fluxo partilhado a partir de um proxy de API ou de um fluxo partilhado

Pode chamar um fluxo partilhado a partir de um proxy ou de outro fluxo partilhado através da política FlowCallout.

Apigee na Cloud Console

  1. Realize um dos seguintes passos:
  2. Clique no separador Desenvolver.
  3. No painel de navegação, junto a Políticas, clique em .
  4. Na lista de políticas, em Extensão, selecione FlowCallout.
  5. Introduza o nome a apresentar e o nome (identificador exclusivo) e, de seguida, selecione o fluxo partilhado que esta política vai chamar.
  6. Clique em Criar.
  7. Clique em junto a Guardar e clique em Guardar como nova revisão.

Apigee clássico

  1. Na IU do Apigee, abra o proxy de API ou o fluxo partilhado a partir do qual quer chamar o fluxo partilhado.
  2. Clique no separador Desenvolver.
  3. No Navegador, junto a Políticas, clique em +.
  4. Na lista de políticas, em Extensão, clique em FlowCallout.
  5. Introduza o nome a apresentar e o nome (identificador exclusivo) e, de seguida, selecione o fluxo partilhado que esta política vai chamar.
  6. Clique em Adicionar.

Veja também

Encadeamento de proxies de API