O documento discute o papel e benefícios de um API Gateway em uma arquitetura de aplicações. Um API Gateway atua como um ponto central para comunicação entre front-end e back-end, filtrando tráfego e roteando chamadas para APIs e microserviços de forma segura. Isso fornece autenticação, autorização, versionamento, caching e monitoramento.
1. Arquitetura de Aplicações
Tema: API Gateway
MBA em Arquitetura de Soluções em Tecnologia
Cláudio Eduardo de Oliveira
João Heytor Kreitlow Pereira
Murilo Luz Romero
2. Visão Geral
O API Gateway funciona como um ponto focal de entrada para a comunicação do
front-end com o back-end de uma aplicação!
Ele também pode atuar de diferentes maneiras:
Filtrar todo tráfego de chamadas feitas através de diferentes meios (web,
mobile, cloud, etc);
Ponto Focal de entrada para as APIs ou microserviços, expondo apenas o que
realmente for utilizado;
Rotear o tráfego das APIs;
Segurança apurada, com a autenticação através de tokens, geração de logs de
6. Exemplo de aplicação
Roteamento APIs de acordo com o device ( smartphone/browser ) (Netflix);
Controle de número de chamadas por cliente (Google APIs);
Bilhetagem ( Monetização da API ) (Google APIs);
“Modernização” de sistemas legados.
7. Possíveis combinações com outros padrões
Microservices;
Data Centric (connectors);
SOA ( barramento ESB ).
Arquitetura básica do API Gateway funcionando como um centralizador de requisições dos clientes (No exemplo um outro padrão sendo aplicado, MVC) para os micro serviços.
Atenção que o API Gateway pode usar diversos protocolos para transmitir as requisições ao microserviços (REST, AMQP, SOAP, etc)
Requisitos ortogonais a aplicação, normalmente são requisitos não funcionais que as aplicações devem implementar
Maior parte de aplicações com características de APIs possuem esse requisitos
Configuração nem sempre é simples, especialmente quando o assunto é segurança
+1 Tier pode ser definido como mais uma camada à ser processada, pois geralmente o gateway fica “na frente” da API
Com o gateway podemos modificar headers/body dos requests se esse uso for exagerado pode gerar problemas dificeis de ser encontrados
Netflix utiliza em suas APIs para fazer roteamento de chamadas
Nível gratuito do Google, apos x números de chamadas o serviço passa a ser cobrado ou é negado o request
“Modernização” se refere a incluir uma camada seguindo algum padrão de APIs (OData ou REST) como “entrypoint” do legado