Arquitetura do gateway de API

A API Gateway é um sistema de gerenciamento de APIs que fornece gerenciamento, monitoramento e autenticação para suas APIs. Os componentes que compõem o gateway de API incluem

  • Gateway de API: para gerenciar todos os aspectos de uma API implantadas
  • Service Control: para aplicar regras de gerenciamento de APIs;
  • Service Management: para gerenciar as configurações da API
  • CLI gcloud: para implantar e gerenciar as APIs
  • Console do Google Cloud: para geração de registros, monitoramento e compartilhamento

Arquitetura

Veja abaixo um diagrama de alto nível dos principais componentes envolvidos no gateway de API

Os principais componentes do gateway de API

Neste diagrama:

  • O provedor da API é responsável pela criação e implantação de uma API no gateway de API. Cada API é definida por um arquivo escrito como uma especificação OpenAPI 2.0.

    A especificação OpenAPI define o URL público do endpoint REST da API, o serviço de back-end acessado pela API e outras características da API, como opções de autenticação, formato de dados e resposta.

  • O cliente da API faz uma solicitação REST para uma API hospedada no gateway de API para acessar serviços de back-end. Um cliente de API pode ser qualquer app capaz de fazer uma chamada REST, como um navegador, um app para dispositivos móveis ou um app da Web.

    O cliente da API só precisa saber o URL da API, o verbo "request" (como GET, PUT, POST, DELETE), todos os requisitos de autenticação e o formato de quaisquer dados enviados ou recebidos da API.

    O cliente da API não precisa saber nada sobre a implementação de back-end. Na verdade, uma única API hospedada no gateway de API pode ser configurada para acessar back-ends diferentes com base nas informações transmitidas na solicitação.

Componentes do gateway de API

API Gateway

A API Gateway oferece uma solução de pagamento por uso totalmente gerenciada para hospedar suas APIs Forneça acesso seguro aos serviços de back-end por meio de uma API REST bem definida, consistente em todos os seus serviços, independentemente da implementação.

A API Gateway é integrada ao Google Cloud para que você possa usar as mesmas ferramentas de desenvolvimento, monitoramento, geração de registros e rastreamento que usa com qualquer outro produto do Google Cloud.

Se você estiver se conectando a um serviço de back-end hospedado fora do Google Cloud, ainda poderá aproveitar todos os serviços do Google Cloud, incluindo os serviços de autenticação e autorização usados para controlar o acesso às suas APIs.

API Service Control

A API Service Control aplica regras de gerenciamento de API no ambiente de execução, como autenticação de chave de API, monitoramento e geração de registros. Ele fornece os seguintes métodos:

  • Verificação: confere as chaves de autenticação e de API e indica se uma chamada é permitida.
  • Relatório: notifica os sistemas de registro para geração de registros e monitoramento.

Service Management API

Use a especificação OpenAPI para definir a API. Em seguida, use a CLI gcloud para fazer upload da especificação OpenAPI no Service Management, que cria a configuração da API. No Service Management, você também realiza outras tarefas relacionadas à configuração. Por exemplo, compartilhar a API com outros desenvolvedores, ativá-la ou desativá-la em diferentes projetos e gerar chaves de API.

CLI da gcloud

A CLI gcloud oferece a ferramenta de linha de comando gcloud, que pode ser usada para chamar vários serviços do Google Cloud. Você usa a Google Cloud CLI para fazer upload da especificação OpenAPI, que cria a configuração da API e a implanta no gateway de API.

console do Cloud

O Console do Cloud é a interface gráfica do usuário para Google Cloud. Use o console do Google Cloud para expor dados de monitoramento e geração de registros gravados pelo Service Control, configurar a autenticação e autorização e permitir que os desenvolvedores gerem chaves de API para chamar a API.

Como processar uma solicitação de AP

Em uma configuração de proxy de API, há dois tipos de endpoints:

  • Endpoint da API: define o endpoint disponível ao público que os clientes usam para consumir suas APIs.
  • Endpoint de back-end: define o endpoint usado pela API para se conectar ao seu serviço de back-end. As configurações de segurança, como o acesso HTTP ou HTTPS, são definidas pela implementação do serviço de back-end.

As solicitações para o endpoint da API são transmitidas para o endpoint de back-end, incluindo todos os dados transmitidos como parte da solicitação. As respostas do serviço de back-end, incluindo todos os dados retornados pelo serviço, são transmitidas para o cliente.

Roteamento de solicitações

Quando uma solicitação é recebida:

  1. O gateway de API cria um token de trace para o Cloud Trace.

  2. O gateway de API corresponde ao caminho das solicitações recebidas com a API de destino. Após encontrar uma rota correspondente, a API Gateway executa todas as etapas de autenticação para a API especificada.

  3. Se a validação do JWT for necessária, o gateway de API validará a autenticação usando a chave pública apropriada para o signatário e validará o campo de público-alvo no JWT. Se uma chave de API for necessária, o gateway de API chamará a API Service Control para validá-la.

  4. O Service Control procura a chave para validá-la e garante que o projeto associado a ela tenha ativado a API. Se a chave não for válida ou o projeto não tiver ativado a API, a chamada será rejeitada e será registrada por meio da API Service Control.

  5. Se o Service Control validar a chave, a solicitação será encaminhada para o back-end com todos os cabeçalhos originais e o de validação do JWT, se apropriado.

  6. Quando chega uma resposta do back-end, o ESP a retorna para o autor da chamada e envia as informações de duração finais para o Trace. Os pontos de chamada são registrados pela API Service Control, que grava métricas e as registra nos destinos apropriados.

A seguir