1
resposta

Como extrair as API de dentro da aplicação para API GATEWAY

Hoje tenho um projeto com as APIs aceitando as requisições através do "Application load balancer" para uma aplicação dentro da EC2; Para não ter que desenvolver os recursos de segurança da API Gateway penso em utilizar o serviço da AWS.

Problemas: Utilização de subdomínio para identificar o cliente, hoje tenho uma única aplicação com versões diferentes que atende 'n' clientes; subdominio1.dominio.com/api/acao subdominio1.dominio.com/api/acao2 subdominio2.dominio.com/api/acao subdominio3.dominio.com/api/acao

O DNS está apontando qualquer subdominio para o loadbalancer; Não consigo colocar a API Gateway atrás do loadbalancer;

Como fazer de forma transparente para os usuários?

1 resposta

Olá, estudante! Tudo bem?

Você pode tentar utilizar o conceito de roteamento baseado em subdomínio no API Gateway para configurar diferentes subdomínios para cada cliente, mantendo a estrutura atual de URLs que você mencionou.

Para isso, você pode seguir os seguintes passos:

  1. Crie uma API na API Gateway para cada subdomínio que você deseja utilizar. Por exemplo, uma API para o subdominio1.dominio.com, outra para subdominio2.dominio.com e assim por diante.

  2. Configure o roteamento de cada API para que ela encaminhe as requisições para a EC2 correta. Você pode fazer isso utilizando um recurso chamado "Integration Request" na API Gateway, onde você pode definir o endpoint de destino para cada rota.

  3. Configure o DNS para apontar cada subdomínio para a API Gateway correta. Dessa forma, quando um usuário acessar subdominio1.dominio.com/api/acao, a requisição será direcionada para a API correta na API Gateway, que por sua vez encaminhará a requisição para a EC2 correspondente.

Com essa configuração, você conseguirá manter a estrutura atual de URLs, utilizando subdomínios para identificar cada cliente, e ao mesmo tempo utilizar a API Gateway como um intermediário para encaminhar as requisições para a EC2 correta.

Espero ter ajudado e bons estudos!