Skip to main content

O API Gateway é uma ferramenta que funciona como um proxy reverso, conseguindo monitorar e gerenciar múltiplas requisições para sua API.

Por estar entre o back-end e o front-end, atua como uma “ponte” com uma única porta de entrada,sendo um facilitador ao se trabalhar com micros serviços, podendo utilizar ferramentas para autenticar e/ou autorizar determinadas chamadas de usuário.

Com isso,este artigo tem o intuito de explicar de maneira simplificada e generalizada comoum API Gateway funciona, quais são os principais tipos e quais são os monitoramentos mais comuns.

APIGateway

O que é um API Gateway?

API Gateway é um tipo de servidor proxy que recebe todas as chamadas de API dos clientes e então as roteia para os destinos correspondentes e em alguns casos, realiza processos de verificação de segurança, como autenticação e autorização.

API Gateway é um serviço, que pode ser atrelado a outros com o intuito de criar, publicar,manter, monitorar e proteger APIs REST, HTTP e WebSocket, fornecendo um endpoint para recursos em nuvem e/ou on-premises de forma escalável e segura.

Quais são os principais tipos de API Gateway? 

API Gateway para Rest API

Uma API Gateway REST API é construída a partir de recursos e métodos. Recurso é uma entidade lógica que a aplicação acessa por meio de um caminho de recurso e o método corresponde a uma solicitação de API REST enviada pelo usuário de sua API e a resposta retornada ao usuário.

Por exemplo,a rota /tarefas pode ser utilizada por recurso que representa as tarefas de umdeterminado usuário da aplicação. A esta rota, pode-se ter diversos métodosHTTP como:

  • GET;
  • POST;
  • PUT;
  • PATCH;
  • DELETE.

A junção do método com o recurso exposto, representa uma solicitação recebida pelo gateway que foi enviada pelo cliente,  ou seja, um método da API. Por exemplo, ajunção do método GET pelo caminho de recurso  /tarefas, resultará no método GET /tarefas.

Para a integração do gateway com o back-end, deve-se criar um endpoint de back-end, ou endpoint de integração, o qual encaminha a solicitação recebida para a URI de integração especificada.

A resposta destes endpoints deve conter o status codee a informação obtida através da resposta do recurso solicitado.

Além disso,com este gateway, é possível transformar os dados de resposta de back-end antes de retornar os dados para o cliente ou transmitir a resposta do back-end daforma em que se encontra para o cliente.

O serviço API Gateway REST API se destaca em comparação ao outros API gateways devido aseu controle de fluxo baseado em usuário/locatário, o qual permite limitar o número de solicitações por usuário ou inquilino, e é destaque para a construção de APIs para um negócio de software como serviço (SaaS) ou qualquer outro cenário onde terceiros interajam com sua API.

Outra vantagem de usar API Gateway REST API é o suporte REST para validação de solicitação e resposta.

Veja também: O que é API Key e como usar!

API Gateway para HTTP APIs

APIs HTTP podem ser utilizadas para enviar solicitações como funções como uma função server less ou para qualquer ponto de extremidade HTTP roteável publicamente. Por exemplo, uma API HTTP que se integre a esta função e quando chamada pelo cliente de sua API, o API Gateway envia a solicitação à função, a qual retorna a resposta ao cliente.

Recursos que fazem com que o serviço API Gateway HTTP se destaque é o suporte a autorização OpenID Connect e OAuth 2.0, além do suporte integrado para compartilhamento de recursos de origem cruzada (CORS).

API Gateway para WebSocket APIs

APIs Gateway WebSocket APIs HTTP podem ser utilizadas para construir aplicativos de comunicação em tempo real seguros sem ter que provisionar ou gerenciar quais quer servidores para gerenciar conexões ou trocas de dados em grande escala.

Casos de uso que fazem com que o API Gateway APIs WebSocket se destaque são aplicativos em tempo real, como os seguintes:

  • aplicativos de bate-papo;
  • painéis em tempo real;
  • alertas     e notificações em tempo real;
  • gerenciamento     para monitoramento e limitações de conexões e mensagens;
  • integração     com endpoints  HTTP/HTTPS.
API Gateway 2

Problemática que o API Gateway tenta resolver 

Vamos imaginar que fazemos parte de um e-commerce. A aplicação está dividida em duas grandes partes: o front-end, onde se trabalham os desenvolvedores front-end e o server, onde se localizam os desenvolvedores back-end. O grupo de back-end desenvolveu três micros serviços, M1 (mostra o catálogo dos produtos), M2(carrinho de compras), M3 (informações do usuário) e para expor essas informações ao front-end, utiliza IP públicos.

Quando os desenvolvedores front-end forem consumir esses micros serviços, eles terão dificuldades para a orquestração das informações, já que muitas das vezes a mesma página trará mais de uma informação, contida em mais de um micros serviço. Além disso, a exposição de um IP público para o consumo destas informações é considerada uma má prática por facilitar ataques do lado do servidor. Como ajudar os desenvolvedores front-end e proteger sua aplicação?

API Gateway
Fig 1.Aplicação conectando o cliente e back-end contendo 3 micros serviços.

Solução:Uso de API Gateways

O API Gateway funciona como um “middleware”,gerenciando a API que fica entre um cliente e uma coleção de serviços deback-end como mostra a Fig 2.

Com isso, podemos tornar os IPs dos micros serviços privados por estarmos expondo, agora, um único IP, referente ao API Gateway,o qual pode adotar medidas de segurança para impedir que requisições não autorizadas e/ou indesejadas.

Além disso,o cliente passará a mandar e receber requisições apenas para um endereço, o IP3, o que facilita o desenvolvimento por parte do front-end ao consumir as informações por parte do servidor, uma vez que o API Gateway que irá orquestrar para qual micros serviço as requisições feita pelo cliente devem ir.

API Gateway

Monitoramento 

Para manter a confiabilidade, a disponibilidade e a performance do API Gateway e das suas soluções, o uso de métricas de monitoramento se mostra essencial.

Para isso, é necessário utilizar serviços de API management que possam garantir tais qualidades além apurar falhas caso ocorra.

A esse último tipo de monitoramento, se aconselha também o uso de alarmes para que o responsável tenha ciente do ocorrido e assim possa investigar suas causas.

As principais métricas atreladas ao API Gateway são: logs, latência de requisição,requisições com resposta de status 5xx e 4xx.

Logs 

Com essa métrica, é possível quantificar e analisar dois tipos de logs: logs por parte do servidor e/ou logs por parte da aplicação. Esta métrica demonstra sua importância ao analisarmos qual rota é mais acessada e por quem. Com isso,algumas medidas de segurança, como um limitador de requisições, podem ser utilizadas para impedir determinados ataques ao servidor, além de entender que serviços seus clientes mais utilizam.

Logs por parte do servidor 

Logs por parte do servidor mantém um histórico das requisições feitas na ordem que elas foram geradas. Cada entrada de registro pode conter as informações sobre a solicitação, incluindo endereço IP do cliente, data / hora da solicitação,caminho da solicitação, código HTTP, bytes servidos, agente do usuário,etc.

Logs por parte da aplicação 

Logs da aplicação são um arquivo de eventos registrados pelo aplicativo. Geralmente contém erros, avisos e eventos informativos. Ele pode conter tudo, desde falhas inesperadas de função até eventos importantes para a compreensão de como os usuários se comportam.

Confira aqui alguns tipos de Logs.

Latência de requisição 

A latência mede a quantidade de tempo entre o momento em que sua API recebe uma solicitação e quando ela responde à solicitação. Essa métrica é importante para monitorar, uma vez que uma alta latência pode significar bugs e uma má performance na sua aplicação.

Requisições com resposta de status 5xx e 4xx 

Medir a quantidade e onde os Erros 5xx ocorrem são de suma importância por serem erros por parte do servidor. Isto pode ocorrer devido a um bug lançado por sua API ou um set time out de conexão.

Os erros de formato 4xx, por sua vez, demonstram erros de solicitação por parte do cliente,como uma rota não existente ou sem autorização. Mesmo que o envio de erros no formato 4xx sejam comuns em aplicações, um grande número deste tipo de resposta pode indicar alguns problemas como alguém não autorizado tentando acessar a sua aplicação ou alguma falha no direcionamento na rota do cliente para o servidor.

Benefícios no uso de API Gateways 

Desacoplamento

Os API Gateways permitem que você faça o roteamento com base no caminho, nome do host,cabeçalhos e outras informações importantes, permitindo que você desacople os pontos de extremidade da API voltados publicamente da arquitetura de micros serviço subjacente.

Reduz viagens de ida e volta

Certos pontos da API podem precisar juntar dados em vários serviços. Os API Gateways podem realizar essa agregação para que o cliente não precise de um complicado encadeamento de chamadas e reduz o número de viagens de ida e volta.

Segurança

Os API Gateways fornecem um servidor proxy centralizado para gerenciar limitação de requests, detecção de bot, autenticação, CORS, entre outras coisas. Muitos gateways de API permitem a configuração de um armazenamento de dados, como o Redis, para cacheamento da informação, além do monitoramento e registro de log sem alguns casos.

Conclusão

Um API Gateway possui diversos recursos e possibilidades que facilitam o trabalho com micros serviços. Por isso, é tão fundamental sua compreensão e uso para expor suas APIs.

Gostou de saber mais sobre API Gateway? Continue conosco e veja agora tudo sobre performance em APIs Restful!

Leave a Reply