O que é o Apigee?

A Apigee é uma plataforma para desenvolvimento e gerenciamento de APIs. Ao viabilizar serviços com uma camada de proxy, a Apigee oferece uma abstração ou fachada para as APIs de serviço de back-end, além de segurança, limitação de taxa, cotas, análise e muito mais.

A imagem a seguir mostra a arquitetura de alto nível da Apigee:

Visão geral detalhada da arquitetura da Apigee.

Como a imagem mostra, a Apigee consiste nos seguintes componentes principais:

  • Serviços da Apigee: as APIs usadas para criar, gerenciar e implantar os proxies de API.
  • Ambiente de execução da Apigee: um conjunto de serviços de ambiente de execução em contêineres em um cluster do Kubernetes mantido pelo Google. Todo o tráfego da API passa e é processado por esses serviços.

Além disso, a Apigee usa outros componentes, incluindo:

  • Serviços do GCP: fornece funções de gerenciamento de identidade, geração de registros, análise, métricas e gerenciamento de projeto.
  • Serviços de back-end: usados pelos apps para fornecer acesso de ambiente de execução aos dados dos proxies de API.

Para explicações mais detalhadas, consulte Componentes da Apigee.

Veja a seguir uma imagem mais granular que mostra a conexão entre seu projeto do Cloud e os serviços do Google em uma rede de peering privada:

Diagrama de arquitetura que mostra as conexões VPC.

Para ver um exemplo de como usar a Apigee, confira este webcast sobre como a Walgreens usa as APIs e a Apigee para oferecer um ecossistema de apps avançado para impressão de foto, prescrições e outros serviços.

Vamos ao que interessa!

Configurar a Apigee e depois Crie seu primeiro proxy!  

Variações da Apigee

A Apigee tem as seguintes variações:

  • Apigee: uma versão SaaS hospedada em que a Apigee mantém o ambiente, permitindo que você se concentre em criar seus serviços e definir as APIs para eles.
  • híbrido da Apigee: uma versão híbrida que consiste em um plano de ambiente de execução instalado no local ou em um provedor de nuvem de sua escolha e um plano de gerenciamento executado na nuvem da Apigee. Nesse modelo, o tráfego e os dados da API são confinados dentro dos próprios limites aprovados pela empresa.

Aceleração digital

Neste vídeo, você tem uma visão rápida de como a Apigee ajuda na evolução para uma empresa digital.

Como escolher entre o gerenciamento de serviços e o de API

Neste vídeo, você entenderá as diferenças importantes entre o gerenciamento de serviços e o de API. empresa.

Disponibilização dos serviços na Web

Hoje, as empresas querem disponibilizar os serviços de back-end na Web para que eles possam ser consumidos por apps executados em dispositivos móveis e computadores. Uma empresa pode querer expor serviços que fornecem informações de preços e disponibilidade de produtos, serviços de vendas e pedidos, serviços de rastreamento de pedidos e qualquer outro serviço exigido pelos apps clientes.

As empresas muitas vezes expõem serviços como um conjunto de endpoints HTTP. Os desenvolvedores de apps clientes fazem solicitações HTTP para esses endpoints. Dependendo do endpoint, o serviço pode retornar dados, formatados como XML ou JSON, ao app cliente.

Os apps clientes que consomem esses serviços podem ser implementados como apps autônomos para um dispositivo móvel ou tablet, como apps HTML5 executados em um navegador ou como qualquer outro tipo de app que possa fazer uma solicitação a um endpoint HTTP e consumir dados de resposta. Esses apps podem ser desenvolvidos e lançados pela mesma empresa que expôs os serviços ou por desenvolvedores de apps de terceiros que fazem uso dos serviços disponíveis publicamente.

A imagem a seguir mostra esse tipo de modelo:

Vários tipos de apps, como apps para dispositivos móveis, apps de ponto de venda, parceiros e apps da Web, conectam-se a serviços de back-end, como ESB, SOA, servidores de apps e bancos de dados.

Como os provedores disponibilizam seus serviços na Web, eles precisam garantir que tenham adotado todas as medidas necessárias para proteger seus serviços contra acesso não autorizado. Como provedor de serviços, considere:

  • Segurança: como você controlará o acesso aos seus serviços para impedir acesso não autorizado?
  • Compatibilidade: seus serviços funcionarão em diferentes plataformas e dispositivos?
  • Capacidade de medição: como você pode monitorar seus serviços para garantir que eles estejam disponíveis?
  • E muitas outras considerações

Após o lançamento de um app cliente que acessa qualquer serviço, o provedor de serviços precisará garantir que esses serviços continuem funcionando ao longo do tempo à medida que adicionam, modificam ou excluem esses serviços. O provedor de serviços também precisa ter uma maneira de manter os desenvolvedores de apps informados sobre alterações nos serviços para garantir que os apps clientes fiquem sincronizados com esses serviços.

Os desenvolvedores de apps clientes enfrentam desafios ao tentar consumir serviços de diferentes provedores. Atualmente, há muitas tecnologias disponíveis para uso por um provedor de serviços para expor os serviços. O mesmo app cliente pode ter que usar um mecanismo para consumir um serviço de um provedor e um mecanismo diferente para consumir um serviço de outro provedor. Os desenvolvedores de apps podem até enfrentar a situação em que precisem usar mecanismos diferentes para consumir serviços do mesmo provedor.

Disponibilizar serviços por meio da Apigee

Com a Apigee, é possível fornecer acesso seguro aos seus serviços com uma API bem definida, consistente entre todos eles, seja qual for a implementação do serviço. Uma API consistente:

  • Facilita o consumo dos serviços pelos desenvolvedores de apps.
  • Permite alterar a implementação do serviço de back-end sem afetar a API pública.
  • Permite que você aproveite a análise, o portal do desenvolvedor e outros recursos integrados à Apigee.

A imagem a seguir mostra uma arquitetura com a Apigee processando as solicitações de apps clientes para seus serviços de back-end:

A Apigee fica entre os aplicativos clientes e os serviços de back-end.

Em vez de os desenvolvedores de apps consumirem os serviços diretamente, eles acessam um proxy de API criado na Apigee. O proxy de API funciona como um mapeamento de um endpoint HTTP disponível publicamente para seu serviço de back-end. Ao criar um proxy de API, você permite que a Apigee processe as tarefas de segurança e autorização necessárias para proteger seus serviços, além de analisá-los e monitorá-los.

Como os desenvolvedores de apps fazem solicitações HTTP a um proxy de API, e não diretamente aos serviços, os desenvolvedores não precisam saber nada sobre a implementação dos seus serviços. Tudo que o desenvolvedor precisa saber é:

  • O URL do endpoint do proxy de API.
  • Todos os parâmetros de consulta, cabeçalhos ou parâmetros de corpo fornecidos em uma solicitação.
  • Todas as credenciais de autenticação e autorização necessárias.
  • O formato da resposta, incluindo o formato de dados da resposta, como XML ou JSON.

O proxy da API isola o desenvolvedor do app do seu serviço de back-end. Portanto, você pode alterar a implementação do serviço, desde que a API pública permaneça consistente. Por exemplo, é possível alterar uma implementação do banco de dados, mover os serviços para um novo host ou fazer qualquer outra alteração na implementação do serviço. Ao manter uma API de front-end consistente, os apps clientes existentes continuarão funcionando, independentemente das alterações no back-end.

Você pode usar as políticas no proxy de API para adicionar funcionalidades a um serviço sem precisar fazer alterações no serviço de back-end. Por exemplo, você pode adicionar políticas ao proxy para realizar transformações e filtragem de dados, reforçar a segurança, executar lógica condicional ou código personalizado e executar muitas outras ações. É importante lembrar que você implementa as políticas na Apigee, não no servidor de back-end.

Para mais informações, consulte Noções básicas sobre APIs e proxies de API.

Criar um produto de API

Um proxy de API é o endpoint HTTP da Apigee que os desenvolvedores usam para acessar seus serviços de back-end. Embora seja possível, você normalmente não disponibiliza proxies de API individuais. Em vez disso, você agrupa um ou mais proxies de API em um produto de API.

Um produto de API é um pacote de proxies de API combinado a um plano de serviços. Esse plano de serviços pode definir limites de acesso em proxies de API, fornecer segurança, permitir monitoramento e análises e oferecer mais recursos. Os produtos de API também são o mecanismo central que a Apigee usa para autorização e controle de acesso às suas APIs.

Você tem muita flexibilidade para criar produtos de API. Por exemplo, vários produtos de API podem compartilhar o mesmo proxy de API. A figura a seguir mostra três produtos de API. Observe que todos os produtos permitem acesso ao proxy de API 3, mas somente o produto A permite acesso ao proxy de API 1.

O produto A acessa o proxy 1 e 3. O produto B acessa o proxy 3.
    O produto C acessa o proxy 2, 3 e 4.

É possível definir propriedades diferentes em cada produto de API. Por exemplo, você pode disponibilizar um produto de API com um limite de acesso baixo, como 1.000 solicitações por dia, por um preço com desconto. Em seguida, você lança outro produto de API que concede acesso ao mesmo proxy de API, mas com um limite de acesso muito maior, por um preço mais alto. Se preferir, crie um produto de API gratuito que permite acesso somente leitura aos seus serviços e, em seguida, venda um produto de API para os mesmos proxies de API que permite acesso de leitura/gravação.

Para mais informações, consulte Criar produtos de API.

Permitir que um app do lado do cliente acesse seu produto de API

Quando os desenvolvedores de apps quiserem acessar seus serviços, eles precisarão primeiro registrar o app cliente deles com seu produto de API.

Um app cliente precisa de uma chave para chamar uma API associada a um produto de API.

Após o registro, o desenvolvedor de apps recebe uma chave de API que precisa ser incluída em cada solicitação a um proxy de API incluído no produto de API. Essa chave é autenticada e, se a autenticação for bem-sucedida, a solicitação poderá acessar seu serviço de back-end.

A qualquer momento, é possível revogar a chave para que o app cliente não tenha mais acesso aos seus serviços. É possível definir um limite de tempo em uma chave para que o desenvolvedor precise atualizar a chave após um período específico.

Você decide como lidar com solicitações de registro de desenvolvedores para acessar seus produtos de API. Ao usar os serviços para desenvolvedores da Apigee, é possível automatizar o processo de registro ou usar um processo manual para controlar o acesso.

Criar produtos de API e disponibilizá-los para desenvolvedores

  1. Crie um ou mais proxies de API que mapeiem URLs publicamente disponíveis para seus serviços de back-end.
  2. Crie um produto de API que agrupe os proxies de API.
  3. Implante os proxies e o produto de API.
  4. Informe seus desenvolvedores de que o produto de API está disponível.

Depois que os desenvolvedores de apps souberem sobre a disponibilidade do produto de API, eles:

  1. Registrarão os apps clientes com seu produto de API.
  2. Receberão uma chave de API para o produto de API.
  3. Farão solicitações aos seus serviços por meio dos proxies de API, que fazem parte do produto de API, e transmitirão a chave de API com cada solicitação.

Componentes da Apigee

A Apigee consiste em ambiente de execução, monitoramento e análise de API e serviços para desenvolvedores que juntos fornecem uma infraestrutura abrangente para criação, segurança, gerenciamento e operações de API.

A imagem a seguir mostra a arquitetura de alto nível da Apigee:

Arquitetura de alto nível da Apigee

Ambiente de execução da Apigee

O foco dos serviços da Apigee é criar e consumir APIs, seja para criar proxies de API como provedor de serviços ou para usar APIs, SDKs e outros serviços de conveniência como desenvolvedor de apps.

O ambiente de execução de API fornece ferramentas para adicionar e configurar os proxies de API, configurar produtos de API e gerenciar desenvolvedores de apps e apps clientes. Ele acaba com muitas preocupações comuns que envolvem o gerenciamento de serviços de back-end. Quando você adiciona um proxy de API, pode aplicar políticas ao proxy para segurança reforçada, limitação de taxa, mediação, armazenamento em cache e assim por diante. Você também pode personalizar o comportamento do proxy de API aplicando scripts personalizados, fazendo chamadas para APIs e serviços de terceiros e assim por diante. Consulte Noções básicas sobre APIs e proxies de API para mais informações.

Monitoramento e análise da Apigee

A API Analytics da Apigee fornece ferramentas eficientes para ver as tendências de uso de curto e longo prazo das suas APIs. É possível segmentar seu público por desenvolvedores e apps principais, entender o uso por método de API para saber onde investir e criar relatórios personalizados com informações comerciais ou de nível operacional.

Conforme os dados passam pela Apigee, vários tipos padrão de informações são coletados, incluindo URL, IP, ID do usuário para informações da chamada de API, latência, dados de erro etc. É possível criar políticas para adicionar outras informações, como cabeçalhos, parâmetros de consulta e partes de uma solicitação ou resposta extraídas do XML ou JSON. Essas informações são coletadas de forma assíncrona do fluxo real de solicitação/resposta e, portanto, não afetam o desempenho da API.

Com a IU da Apigee, é possível visualizar várias métricas e dimensões em um navegador, conforme mostrado na figura a seguir:

Um painel de análise que mostra o número de erros de política em formato gráfico e tabular.

No entanto, também é possível acessar e controlar o serviço do Analytics por uma interface de linha de comando ou por meio de APIs RESTful. Consulte a Visão geral da API Analytics para mais informações.

Ecossistema de desenvolvedores da Apigee

A Apigee fornece serviços para desenvolvedores que permitem:

  • Gerenciar a comunidade de desenvolvedores de apps que usam seus serviços.
  • Trabalhar com desenvolvedores internos e externos e formalizar os relacionamentos com modelos financeiros.
  • Integrar desenvolvedores e criar um portal do desenvolvedor. Os desenvolvedores de apps se conectam ao portal para acessar a documentação da API e saber mais sobre seus produtos de API disponíveis publicamente e gerenciar as chaves de API.

Todos os clientes da Apigee podem criar o próprio portal do desenvolvedor na nuvem.

A Apigee permite criar dois tipos de portais: