API Gateway: o que é, como funciona e para que serve

API Gateway: o que é, como funciona e para que serve

Se você já mexeu com uma arquitetura de microserviços, provavelmente chegou naquele momento em que percebe: o front-end (ou o app mobile) não pode ficar conversando direto com dez, vinte, trinta serviços diferentes. Cada um com sua URL, sua porta, sua forma de autenticar. Vira um caos rápido. E é exatamente aí que o API Gateway entra na jogada, resolvendo um problema que quase todo sistema distribuído acaba enfrentando cedo ou tarde.

Neste post a gente vai destrinchar o assunto de verdade: o que é um API Gateway, como ele funciona por dentro, para que serve na prática, as diferenças reais em relação a um load balancer (spoiler: não são a mesma coisa), as ferramentas mais usadas no mercado e, o que quase ninguém fala, quando você não precisa de um. Porque adicionar um gateway sem necessidade é uma forma clássica de complicar a própria vida.

O que é um API Gateway?

Um API Gateway é um componente de software que fica na frente das suas APIs e funciona como o ponto de entrada único para todas as requisições que chegam a um sistema. Em vez de o cliente (navegador, app, outro serviço) falar diretamente com cada API interna, ele fala só com o gateway, e o gateway se encarrega de rotear cada chamada para o serviço certo, cuidando de tarefas transversais como autenticação, controle de tráfego e transformação de respostas no caminho.

A analogia que eu gosto de usar é a da recepção de um prédio comercial grande. Você não sai batendo de porta em porta procurando a empresa que quer visitar. Você chega na recepção, se identifica, diz com quem quer falar, e a recepção te direciona. O API Gateway é essa recepção: ele centraliza a entrada, verifica quem está chegando e encaminha para o lugar certo. Ninguém entra no prédio sem passar por ali.

API Gateway: o que é, como funciona e para que serve ilustracao 1

O problema que o API Gateway resolve em microserviços

Para entender por que essa peça virou quase obrigatória, vale voltar um passo. Num monólito clássico, o cliente conversa com uma aplicação só. Uma URL, um servidor, um esquema de autenticação. Simples. Quando você quebra esse monólito em microserviços, cada pedaço vira um serviço independente: catálogo, carrinho, pagamento, usuários, notificações. Cada um roda em seu próprio processo, muitas vezes em máquinas diferentes, com endereços diferentes.

Agora imagine o app mobile tendo que saber o endereço de cada um desses serviços. Toda vez que um serviço muda de lugar, escala, ou é dividido em dois, o app precisaria saber. Pior: cada serviço teria que implementar sozinho a lógica de validar token, checar permissão, registrar log, limitar abuso. Você repetiria o mesmo código de segurança em vinte lugares, e bastava um deles errar para abrir um buraco. É insustentável.

O gateway resolve isso concentrando as responsabilidades que são comuns a todo mundo num único ponto. O cliente conhece um endereço só. A lógica de autenticação vive num lugar só. Se um serviço interno muda de endereço, quem se vira é o gateway, e o cliente nem fica sabendo. Esse desacoplamento entre quem consome e quem serve é o ganho central aqui.

Vale um aviso honesto: o gateway também vira um ponto único de falha se você não tomar cuidado. Se ele cai, tudo cai junto. Por isso, na prática, gateway em produção quase sempre roda com múltiplas instâncias atrás de um load balancer, com health checks e failover. A gente volta nessa relação entre os dois mais pra frente.

Funções principais de um API Gateway

Um gateway não faz uma coisa só. Ele acumula várias responsabilidades que, juntas, tiram um peso enorme dos serviços internos. Vou passar pelas mais importantes.

Roteamento de requisições

É a função mais básica e a razão de existir do gateway. Ele olha para a requisição que chegou (o caminho da URL, o método HTTP, headers, às vezes o corpo) e decide para qual serviço interno mandar. Uma chamada para /pedidos vai para o serviço de pedidos; /usuarios vai para o de usuários. O cliente não precisa saber onde cada um mora.

Autenticação e autorização

Aqui mora um dos maiores valores do gateway. Em vez de cada serviço validar credenciais por conta própria, o gateway faz a checagem na entrada. Ele valida o token JWT, confere a chave de API, integra com um provedor OAuth, e só deixa passar quem tem direito. Os serviços internos podem confiar que, se a requisição chegou até eles, ela já passou pelo crivo. Isso reduz muito a superfície de erro.

Rate limiting e throttling

Controlar quantas requisições um cliente pode fazer num intervalo de tempo é essencial para proteger a infra. Sem isso, um cliente mal comportado (ou um ataque) pode derrubar seus serviços fazendo milhares de chamadas por segundo. O gateway aplica limites por IP, por chave de API, por usuário, e devolve um 429 Too Many Requests quando alguém passa do teto.

Agregação de respostas

Às vezes uma tela do app precisa de dados que vivem em três serviços diferentes. Sem gateway, o cliente faria três chamadas e juntaria tudo na mão. Com um gateway capaz de agregação (ou usando o padrão BFF, Backend for Frontend), o cliente faz uma chamada só, e o gateway busca nos três serviços, junta e devolve uma resposta única. Menos idas e voltas na rede, especialmente valioso em conexão móvel.

Transformação de protocolo e payload

O mundo lá fora fala REST sobre HTTP. Lá dentro, seus serviços podem falar gRPC, mensageria, ou ter formatos de resposta antigos que você não quer expor. O gateway traduz: recebe REST na borda, converte para o que o serviço interno entende, e faz o caminho de volta. Isso te dá liberdade de mudar a tecnologia interna sem quebrar quem consome a API.

Observabilidade

Como todo tráfego passa por ele, o gateway é o lugar perfeito para coletar métricas, logs e traces. Latência por rota, taxa de erro, volume de chamadas por cliente: tudo isso fica centralizado. Quando algo dá errado em produção, o gateway costuma ser o primeiro lugar onde a gente olha.

A tabela abaixo resume as funções e o que cada uma entrega na prática:

Função O que faz Benefício direto
Roteamento Encaminha cada requisição ao serviço certo Cliente conhece um endereço só
Autenticação Valida token, chave de API ou OAuth na entrada Segurança centralizada, menos código repetido
Rate limiting Limita chamadas por cliente/IP/chave Proteção contra abuso e sobrecarga
Agregação Junta respostas de vários serviços numa só Menos round-trips, app mais rápido
Transformação Converte protocolos e formatos de payload Liberdade para mudar a tecnologia interna
Observabilidade Coleta métricas, logs e traces do tráfego Diagnóstico rápido de problemas

Como funciona um API Gateway na prática

Vamos ao fluxo real de uma requisição. O cliente dispara uma chamada, digamos GET /api/pedidos/42, para o endereço público do gateway. O gateway recebe, e antes de qualquer coisa aplica os filtros de entrada: valida o token no header Authorization, checa se aquele cliente ainda tem cota disponível no rate limit, registra o início da chamada para o log.

Passando por esses filtros, o gateway consulta suas regras de roteamento e descobre que /api/pedidos corresponde ao serviço de pedidos, que está rodando em algum lugar da rede interna. Ele então repassa a requisição para lá, espera a resposta, eventualmente aplica alguma transformação (remove campos internos, ajusta o formato), registra a latência e o status, e devolve o resultado ao cliente. Tudo isso em milissegundos.

Na prática, a configuração desse roteamento costuma ser declarativa. Veja um exemplo simplificado de como fica uma rota com autenticação e rate limit num arquivo de configuração estilo Kong, em YAML:

services:
  - name: servico-pedidos
    url: http://pedidos.interno:8080
    routes:
      - name: rota-pedidos
        paths:
          - /api/pedidos
        methods:
          - GET
          - POST
    plugins:
      - name: jwt
      - name: rate-limiting
        config:
          minute: 60
          policy: local

Repare como tudo fica concentrado: o destino interno, o caminho público, os métodos aceitos e os plugins de segurança (JWT e rate limiting de 60 por minuto). Adicionar autenticação a uma nova rota é questão de declarar o plugin, sem tocar no código do serviço de pedidos. Esse é o tipo de produtividade que faz o gateway valer a pena.

API Gateway: o que é, como funciona e para que serve ilustracao 2

API Gateway vs Load Balancer: qual a diferença?

Essa é a confusão mais comum, e faz sentido, porque os dois ficam na frente da sua infra recebendo tráfego. Mas eles operam em camadas e com propósitos diferentes. Resumindo de forma direta: o load balancer distribui carga; o API Gateway entende e gerencia APIs.

Um load balancer tradicional trabalha distribuindo requisições entre várias instâncias do mesmo serviço para equilibrar a carga e garantir disponibilidade. Ele geralmente opera na camada 4 (TCP) ou na camada 7 (HTTP), e sua pergunta central é: “para qual das minhas cópias idênticas deste serviço eu mando esta requisição agora?”. Ele não liga para o que a requisição significa, só quer espalhar o peso.

O API Gateway opera sempre na camada 7 e tem consciência de aplicação. Ele olha o conteúdo da requisição, aplica autenticação, transforma payload, agrega serviços, faz rate limiting por usuário. A pergunta dele é outra: “o que esta requisição quer, quem a enviou, ela tem permissão, e para qual serviço distinto ela deve ir?”. São serviços diferentes por trás, não cópias do mesmo.

Na vida real, os dois trabalham juntos. É comum ter um load balancer na frente de várias instâncias do próprio gateway (afinal o gateway também precisa escalar e não pode ser ponto único de falha), e o gateway, por sua vez, roteando para os serviços internos, que podem ter seus próprios balanceadores. A tabela deixa a distinção mais nítida:

Aspecto Load Balancer API Gateway
Objetivo principal Distribuir carga entre instâncias Gerenciar e rotear chamadas de API
Camada L4 (TCP) ou L7 (HTTP) L7, com consciência de aplicação
Conhece a requisição? Não precisa entender o conteúdo Sim, inspeciona rota, headers, corpo
Autenticação Geralmente não faz Sim, é uma função central
Destino do tráfego Cópias idênticas do mesmo serviço Serviços distintos conforme a rota
Rate limiting por usuário Não Sim

Uma forma de guardar isso: se você precisa de mais cópias do mesmo serviço aguentando tráfego, quer um load balancer. Se você precisa de uma porta de entrada inteligente que entende e governa suas APIs, quer um gateway. Muitas vezes você quer os dois.

Ferramentas de API Gateway do mercado

Existem várias opções, e a escolha depende muito do seu ambiente (cloud, on-premise, Kubernetes) e do time. Vou comentar as mais relevantes.

Kong

Um dos gateways open source mais populares, construído em cima do Nginx com Lua. É extensível por plugins (autenticação, rate limiting, transformações, logging), tem versão gratuita e uma edição enterprise. Roda bem tanto em VM quanto em Kubernetes, onde funciona como Ingress Controller. Se você quer flexibilidade e uma comunidade grande, Kong costuma ser uma aposta segura.

Nginx

O Nginx nasceu como servidor web e proxy reverso, mas é tão configurável que muita gente o usa como gateway de forma direta, especialmente para roteamento e rate limiting mais simples. Não é um gateway completo de fábrica (autenticação avançada e agregação exigem módulos ou scripting), mas para casos mais enxutos, ou quando você já domina Nginx, ele entrega muito com pouca complexidade. Um trecho de config para roteamento fica assim:

location /api/pedidos/ {
    limit_req zone=api burst=20;
    proxy_pass http://pedidos_backend;
    proxy_set_header Authorization $http_authorization;
}

AWS API Gateway

É o serviço gerenciado da AWS. A grande vantagem é você não administrar servidor nenhum: a AWS cuida de escala, disponibilidade e patching. Integra nativamente com Lambda (ótimo para serverless), Cognito para autenticação, CloudWatch para observabilidade. O custo é por chamada, o que pode ficar salgado em volumes altíssimos, mas para muitos projetos a economia de operação compensa. Se você já vive no ecossistema AWS, é o caminho natural.

Outras opções

Vale citar rapidamente o Apigee (do Google, forte em gestão de APIs corporativas e monetização), o Tyk (open source, leve, com bom dashboard), o Traefik (muito querido no mundo Kubernetes e Docker pela configuração automática) e o Azure API Management para quem está na Microsoft. Cada um brilha num contexto. O importante é combinar a ferramenta com o ambiente onde ela vai viver.

Quando você NÃO precisa de um API Gateway

Essa parte quase nunca aparece nos artigos, mas é importante. Gateway é uma ferramenta poderosa, e como toda ferramenta poderosa, ela adiciona complexidade. Nem todo projeto precisa dessa camada.

Se você tem um monólito bem resolvido, uma aplicação única servindo tudo, colocar um gateway na frente pode ser pura cerimônia. A aplicação já é o ponto de entrada único, já tem sua autenticação centralizada no próprio código. Você estaria adicionando um salto de rede e um componente para operar sem ganho real.

Se você tem só dois ou três serviços internos e todos são consumidos por um único front-end que você mesmo controla, talvez um proxy reverso simples resolva, sem precisar de um gateway completo com toda a sua parafernália de plugins. Comece leve. Dá pra adicionar o gateway depois, quando a dor de gerenciar múltiplos serviços aparecer de verdade.

E tem o custo operacional real: um gateway é mais uma peça para monitorar, atualizar, escalar e debugar. Ele adiciona latência (pouca, mas existe) e vira um lugar onde as coisas podem dar errado. A regra que eu sigo é: adicione o gateway quando a repetição de responsabilidades transversais entre serviços começar a doer, não antes. Resolver um problema que você ainda não tem é uma forma cara de perder tempo.

Perguntas frequentes sobre API Gateway

API Gateway e proxy reverso são a mesma coisa?

Não, embora o gateway seja construído sobre a ideia de proxy reverso. Um proxy reverso simplesmente recebe requisições e as encaminha para servidores de trás, escondendo a infra. O API Gateway faz isso e vai muito além: autenticação, rate limiting, agregação, transformação, observabilidade. Todo API Gateway é um proxy reverso, mas nem todo proxy reverso é um API Gateway.

API Gateway deixa minha aplicação mais lenta?

Ele adiciona um salto de rede, então tecnicamente sim, existe uma latência extra, geralmente na casa de poucos milissegundos. Na prática, esse custo costuma ser irrelevante perto do que você ganha: menos chamadas do cliente (via agregação), conexões reaproveitadas e segurança centralizada. Um gateway bem configurado raramente é o gargalo do sistema.

Preciso de um API Gateway para usar microserviços?

Não é obrigatório, mas na maioria dos casos ele acaba fazendo muito sentido. Sem gateway, você precisa lidar de outra forma com roteamento, autenticação e as demais responsabilidades transversais, e isso tende a virar código repetido ou acoplamento no cliente. Quanto mais serviços você tem, mais o gateway se paga. Com pouquíssimos serviços, dá pra viver sem.

Qual a diferença entre API Gateway e Service Mesh?

O gateway cuida do tráfego que entra e sai do seu sistema (o chamado tráfego norte-sul), a fronteira entre o mundo externo e seus serviços. O service mesh cuida da comunicação entre os serviços internos (tráfego leste-oeste), com coisas como descoberta de serviço, retries e mTLS entre eles. Eles resolvem problemas diferentes e é comum ver os dois convivendo na mesma arquitetura.

Um API Gateway pode ser ponto único de falha?

Pode, se você rodar uma instância só. Por isso, em produção, ele nunca roda sozinho: você mantém várias instâncias do gateway atrás de um load balancer, com health checks e failover automático. Assim, se uma instância cai, o tráfego segue pelas outras e o sistema continua de pé.

Kong, Nginx ou AWS API Gateway: qual escolher?

Depende do ambiente. Se você quer algo gerenciado e já está na AWS, o AWS API Gateway poupa operação. Se roda em Kubernetes ou quer open source com muitos plugins, Kong é uma escolha forte. Se sua necessidade é simples e você já domina Nginx, ele resolve com pouca complexidade. Não existe melhor absoluto: existe o que combina com o seu contexto.

Conclusão

O API Gateway é uma daquelas peças que parecem óbvias depois que você entende o problema que elas resolvem. Ele centraliza a entrada do seu sistema, tira dos serviços internos o peso de tarefas transversais como autenticação, rate limiting e roteamento, e dá ao cliente uma interface única e estável, mesmo que a bagunça interna mude o tempo todo. Em arquiteturas de microserviços, ele deixa de ser luxo e vira infraestrutura básica.

Ao mesmo tempo, ele não é bala de prata. É mais uma peça para operar, mais um ponto que precisa de redundância, e mais uma fonte potencial de latência e falha. A decisão de adotar (e qual ferramenta usar, entre Kong, Nginx, AWS API Gateway e companhia) deve nascer de uma dor real de gerenciamento, não de modismo. Entenda o que o gateway faz, saiba diferenciá-lo de um load balancer e de um service mesh, e você vai colocar essa peça no lugar certo, na hora certa, pelo motivo certo.

Para quem constrói sistemas que precisam de dados oficiais, o Hub do Desenvolvedor mantém APIs de consulta de CNPJ e CPF na Receita Federal prontas para você integrar sem burocracia.

Compartilhe nas mídias: