Um API gateway é uma porta de entrada gerenciada para as suas APIs — um ponto único que roteia, autentica e aplica rate limit a cada requisição. A ideia é centralização: o trabalho transversal de que todo endpoint precisa (quem é você, a que taxa pode chamar, para onde isso vai, o que aconteceu) sai de N serviços e entra em uma camada de política que os clientes não conseguem contornar.
Principais pontos
| Pergunta | Resposta |
|---|---|
| O que é | Um ponto de entrada: rotear, autenticar, limitar, transformar, observar |
| vs. load balancer | O LB escolhe uma instância; o gateway toma decisões de política cientes de API |
| vs. reverse proxy | Um gateway é um — com um cérebro de políticas de API acoplado |
| vs. service mesh | Gateway = norte-sul (clientes entrando); mesh = leste-oeste (serviço a serviço) |
| A pergunta honesta | Se você precisa de um — muitos sistemas ainda não precisam |
O que a porta de entrada faz
A lista de tarefas de um gateway, como configuração em vez de N cópias de middleware — uma rota declarativa típica:
# rota do gateway: uma entrada, política anexada
route: /orders/**
service: orders-api:8080 # roteamento — a topologia fica privada
auth: bearer-jwt # autenticação na porta
rate_limit: 100/min per key # orçamentos antes dos backends
transform:
strip_headers: [X-Internal-*] # traduzir entre a borda e o interior
timeout: 5s
observe: log + trace + metrics # um só lugar para observar tudo
Do lado do cliente, um gateway gerenciado desaparece dentro do SDK — uma chamada, com as checagens da porta aplicadas antes de qualquer código seu rodar:
// JavaScript / Node.js — Back4app JS SDK
// One managed entry point: auth, rate limits, and routing applied per call
const receipt = await Parse.Cloud.run('placeOrder', { cartId: 'crt_812' });
// The platform's gateway verified the session, applied limits,
// and routed to the function — none of it in your code.
console.log(`Order ${receipt.orderId} confirmed`); // Flutter / Dart — Back4app Flutter SDK
// One managed entry point: auth, rate limits, and routing applied per call
final function = ParseCloudFunction('placeOrder');
final response = await function.execute(parameters: {'cartId': 'crt_812'});
if (response.success) {
print('Order ${response.result['orderId']} confirmed');
} // iOS / Swift — Back4app Swift SDK
// One managed entry point: auth, rate limits, and routing applied per call
ParseCloud.callFunction("placeOrder",
parameters: ["cartId": "crt_812"]) { result in
if case .success(let receipt) = result {
print("Order confirmed: \(receipt)")
}
} // Android / Kotlin — Back4app Android SDK
// One managed entry point: auth, rate limits, and routing applied per call
val params = hashMapOf("cartId" to "crt_812")
ParseCloud.callFunctionInBackground<Map<String, Any>>("placeOrder", params) { receipt, e ->
if (e == null) Log.d("Orders", "Order ${receipt["orderId"]} confirmed")
} Os quatro parecidos, separados
| Reverse proxy | Load balancer | API gateway | Service mesh | |
|---|---|---|---|---|
| Pergunta que responde | ”Encaminhe isso para dentro" | "Qual instância?" | "Qual serviço, você pode, a que taxa?" | "Como os serviços conversam com segurança?” |
| Tráfego | Norte-sul | Norte-sul | Norte-sul | Leste-oeste |
| Base da decisão | Host/path | Saúde + algoritmo | Política de API: auth, limites, formato | Identidade do serviço |
| Camada típica | L7 básico | L4/L7 | L7, ciente de API | Sidecars em todo lugar |
| Relação | Classe-mãe do gateway | Geralmente na frente do gateway | — | Coexiste atrás dele |
A descrição canônica do padrão acrescenta a variação que vale conhecer: o Backend for Frontend — um gateway fino por tipo de cliente, cada um moldando respostas para o seu cliente — que troca mais artefatos implantados pelo fim das APIs tamanho-único-que-não-serve-em-ninguém.
As desvantagens, ditas sem rodeios
O gateway centraliza poder, e a centralização cobra de quatro formas. Ponto único de falha: tudo flui por ele — rode-o clusterizado atrás de um load balancer ou aceite que a queda dele é a queda. O novo gargalo: todo time de feature agora abre mudanças de configuração contra um componente compartilhado; governança e ferramentas de self-service são parte da adoção, não extras. O monólito renascido: lógica de agregação acumulando no gateway reconstrói em silêncio a aplicação centralizada que você decompôs — mantenha-o denso em política e magro em lógica. Alastramento de config: centenas de rotas com políticas por rota são um codebase; revise-as como um. Nada disso argumenta contra gateways; tudo isso argumenta contra gateways casuais.
Casos de uso comuns
- Porta de entrada de microsserviços — a história de origem: muitos serviços, uma API coerente, topologia livre para evoluir atrás dela.
- Produtos multi-cliente — web, mobile e parceiros com auth, formatos e limites diferentes — o território do BFF.
- Monetização de API — chaves, planos, quotas e medição de uso impostos em um ponto.
- Migrações — o padrão strangler: o gateway roteia caminhos antigos para o sistema legado e caminhos novos para o substituto, de forma invisível.
- Política de borda — CORS, TLS, higiene de headers e rate limiting aplicados uma vez em vez de N.
Você precisa de um? Matriz de decisão
| O gateway se paga quando… | Pule (ou adie) quando… |
|---|---|
| Muitos serviços ficam atrás de uma API | Um serviço atende um tipo de cliente |
| Clientes diferem em auth, formato ou limites | Um reverse proxy já cobre TLS + roteamento |
| A política precisa ser imposta centralmente | A política está a um import de middleware de distância |
| A topologia muda mais rápido que os clientes | A topologia é uma caixa só |
| Alguém é dono do gateway como produto | Ninguém o operaria |
A resposta sem dono na maioria das páginas de comparação: ainda não é uma arquitetura legítima. Adicione a porta quando houver um prédio atrás dela.
Limitações e trade-offs
- A disponibilidade agora é a disponibilidade do gateway. Clusterize, monitore com health checks e ensaie a falha dele — a mitigação é padrão e não é opcional.
- Um hop de latência, contabilizado com honestidade contra as idas e vindas e o middleware duplicado que ele remove; meça, não presuma em nenhuma direção.
- Agregação é uma ladeira. Compor respostas é legítimo; lógica de negócio no gateway é o padrão ESB usando um crachá novo.
- Opções open-source carregam operação. Existem gateways excelentes em open source (stacks baseados em Envoy e pares) — cada um é um sistema distribuído que você agora roda, atualiza e protege.
- Gateways gerenciados trocam controle por silêncio. A porta operada pela plataforma é a resposta certa exatamente quando operar o gateway seria labuta sem diferencial.
O gateway no Back4app
O Back4app é uma plataforma open-source de Backend as a Service (BaaS) que combina banco de dados gerenciado, APIs REST e GraphQL geradas automaticamente, autenticação, armazenamento de arquivos e funções serverless com Cloud Code. A camada de gateway vem com a plataforma: toda requisição — REST, GraphQL, SDK ou chamada de Cloud Code, como nas abas de código acima — entra por uma borda gerenciada que autentica sessões e chaves, aplica rate limits por app e roteia para as APIs geradas ou para as suas funções, com a plataforma operando o clustering e a escalabilidade que tornam uma porta de entrada segura. A matriz de decisão colapsa: você ganha as garantias do gateway no primeiro dia, e pula a posse da porta por inteiro.
Perguntas frequentes
O que é um API gateway e como ele funciona?
É um ponto de entrada único na frente dos seus serviços de backend. Toda requisição chega ao gateway, que autentica quem chama, aplica rate limits, roteia para o serviço certo, opcionalmente transforma ou agrega respostas e registra dados de observabilidade — e então devolve o resultado. Os clientes veem uma API coerente; a topologia atrás dela permanece privada e livre para mudar.
Qual a diferença entre API gateway e load balancer?
Camada e intenção. O load balancer distribui tráfego entre cópias idênticas de um serviço, por capacidade e disponibilidade — ele pergunta "qual instância?". O gateway toma decisões cientes de API — "qual serviço, esse chamador pode, a que taxa, com qual transformação?". Eles se complementam: o arranjo clássico põe um load balancer na frente das instâncias do gateway, e os serviços atrás dos dois.
Um API gateway é só um reverse proxy?
É um reverse proxy especializado. Todo gateway é um proxy reverso — termina requisições de clientes e as encaminha para dentro — mas com um cérebro de políticas no formato de API: autenticação, rate limits por chave, transformação de requisições, agregação e observabilidade em nível de API. Se você só precisa de encaminhamento e TLS, um reverse proxy comum basta; o gateway se paga quando política entra em cena.
Qual a diferença entre API gateway e service mesh?
A direção do tráfego. O gateway governa o tráfego norte-sul — clientes entrando no sistema. O service mesh governa o tráfego leste-oeste — serviços conversando entre si por dentro, via sidecars que cuidam de mTLS, retries e roteamento. Sistemas grandes rodam os dois; sistemas pequenos geralmente não precisam do mesh — e às vezes nem do gateway.
O que é o padrão Backend for Frontend (BFF)?
Uma variação do gateway: em vez de um gateway atendendo todos os clientes, cada tipo de cliente — web, mobile, parceiros — ganha o seu próprio gateway fino, moldando respostas para as suas necessidades. Ele resolve o cabo de guerra em que uma API genérica atende todo mundo mal, ao custo de mais artefatos para implantar. O BFF é o padrão de gateway admitindo que clientes são diferentes.
Um API gateway é um ponto único de falha?
Arquiteturalmente, sim — tudo passa por ele — e é por isso que gateways de produção rodam como frotas clusterizadas e escaladas horizontalmente atrás de um load balancer, com health checks e failover. A mitigação é padrão; o pecado é rodar a porta-de-tudo como instância única porque funcionou bem em staging.
Um API gateway adiciona latência?
Um hop, tipicamente na casa de milissegundos de um dígito — e muitas vezes é ganho líquido: a agregação colapsa várias idas e vindas do cliente em uma, o cache responde repetições na borda, e a reutilização de conexões com os backends é mais rápida que conexões frias do cliente. A conta honesta compara o hop com as viagens e o código de política duplicado que ele elimina.
Quando você NÃO precisa de um API gateway?
Com mais frequência do que os vendedores admitem: um serviço único com um tipo de cliente, um app renderizado no servidor chamando o próprio backend, APIs internas atrás de uma VPN, ou qualquer lugar em que um reverse proxy existente já cubra TLS e roteamento. O gateway paga seu custo operacional quando há muitos serviços, muitos clientes ou política de verdade para centralizar — não antes.