Arquitetura do API Gateway

O API Gateway é um sistema de gestão de APIs que oferece gestão, monitorização e autenticação para as suas APIs. Os componentes que constituem o gateway da API incluem:

  • API Gateway: para gerir todos os aspetos de uma API implementada
  • Controlo de serviços: para aplicar regras de gestão de APIs
  • Service Management: para gerir configurações de APIs
  • CLI gcloud: para implementar e gerir as suas APIs
  • Google Cloud console: para registo, monitorização e partilha

Arquitetura

Segue-se um diagrama de alto nível dos principais componentes envolvidos no API Gateway:

Os principais componentes do API Gateway.

Neste diagrama:

  • O fornecedor da API é responsável pela criação e implementação de uma API no API Gateway. Cada API é definida por um ficheiro escrito como uma especificação OpenAPI 2.0.

    A especificação OpenAPI define o URL público do ponto final REST para a API, o serviço de back-end acedido pela API e quaisquer outras caraterísticas da API, como a autenticação, o formato de dados e as opções de resposta.

  • O cliente API faz um pedido REST a uma API alojada no API Gateway para aceder aos serviços de back-end. Um cliente API pode ser qualquer app capaz de fazer uma chamada REST, como um navegador, uma app para dispositivos móveis ou uma app Web.

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

    O cliente da API não precisa de saber nada sobre a implementação de back-end. Na verdade, uma única API alojada no API Gateway pode ser configurada para aceder a diferentes backends com base nas informações transmitidas no pedido.

Componentes do API Gateway

API Gateway

O API Gateway oferece uma solução totalmente gerida e de pagamento por utilização para alojar as suas APIs. O Gateway da API oferece acesso seguro aos seus serviços de back-end através de uma API REST bem definida e consistente em todos os seus serviços, independentemente da implementação do serviço.

O API Gateway está integrado com o Google Cloud para que possa usar as mesmas ferramentas de desenvolvimento, monitorização, registo e rastreio que usa com qualquer outro produto Google Cloud .

Se estiver a estabelecer ligação a um serviço de back-end alojado fora do Google Cloud, pode continuar a tirar partido de todos os Google Cloud serviços, incluindo os serviços de autenticação e autorização usados para controlar o acesso às suas APIs.

Service Control API

A API Service Control aplica regras de gestão de APIs no tempo de execução, como a autenticação de chaves de API, a monitorização e o registo. O Service Control fornece os seguintes métodos:

  • Verificar: valida a autenticação e as chaves de API, e indica se uma chamada deve ser permitida
  • Comunicação: notifica os sistemas de registo para registo e monitorização

Service Management API

Usa a especificação OpenAPI para definir a sua API. Em seguida, usa a CLI gcloud para carregar a especificação OpenAPI para a gestão de serviços, o que cria a configuração da API. Outras tarefas relacionadas com a configuração também ocorrem aqui, como partilhar a sua API com outros programadores, ativar ou desativar a API em diferentes projetos e gerar chaves da API.

CLI gcloud

A CLI gcloud fornece a ferramenta de linhas de comando gcloud que pode usar para fazer chamadas a vários Google Cloud serviços. Usa a CLI do Google Cloud para carregar a sua especificação OpenAPI, que cria a configuração da API e, em seguida, para implementar a configuração da API no API Gateway.

Cloud Console

A Google Cloud consola é a interface gráfica do utilizador para a Google Cloud consola. Use a Google Cloud consola para expor os dados de monitorização e registo registados pelo Service Control, para configurar a autenticação e a autorização, e para os programadores gerarem chaves de API para chamar a API.

Processar um pedido de API

Numa configuração de API, existem dois tipos de pontos finais:

  • Ponto final da API: define o ponto final disponível publicamente que os clientes usam para consumir as suas APIs.
  • Ponto final de back-end: define o ponto final que a API usa para se ligar ao seu serviço de back-end. As definições de segurança, como o acesso HTTP ou HTTPS, são definidas pela implementação do serviço de back-end.

Os pedidos ao seu ponto final da API são transmitidos ao ponto final de back-end, incluindo todos os dados transmitidos como parte do pedido. As respostas do serviço de back-end, incluindo quaisquer dados devolvidos pelo serviço, são transmitidas de volta ao cliente.

Encaminhamento de pedidos

Quando é recebido um pedido:

  1. O API Gateway cria um token de rastreio para o Cloud Trace.

  2. O API Gateway faz corresponder o caminho dos pedidos recebidos com a API de destino. Depois de encontrar uma rota correspondente, o API Gateway executa os passos de autenticação para a API especificada.

  3. Se a validação JWT for necessária, o API Gateway valida a autenticação através da chave pública adequada para o signatário e valida o campo de público-alvo no JWT. Se for necessária uma chave de API, o API Gateway chama a API Service Control para validar a chave.

  4. O Service Control procura a chave para a validar e garante que o projeto associado à chave ativou a API. Se a chave não for válida ou o projeto não tiver ativado a API, a chamada é rejeitada e registada através da API Service Control.

  5. Se o Service Control validar a chave com êxito, o pedido, juntamente com todos os cabeçalhos originais, mais um cabeçalho de validação JWT, se adequado, é encaminhado para o back-end.

  6. Quando é recebida uma resposta do back-end, o API Gateway devolve a resposta ao autor da chamada e envia as informações de sincronização finais para o Trace. Os pontos de chamada são registados pela API Service Control, que, em seguida, escreve métricas e registos nos respetivos destinos.

O que se segue?