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:
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:
O API Gateway cria um token de rastreio para o Cloud Trace.
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.
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.
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.
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.
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.