API Gateway na nuvem: uma visão geral do Azure API Management em exemplos práticos

Renato Groffe
3 min readAug 13, 2022

APIs REST representam nos dias atuais um elemento quase que onipresente nos mais variados tipos de projetos, indo desde a componentes centrais na implementação de soluções na nuvem a importantes alternativas para a integração de sistemas. Temos até mesmo APIs sendo oferecidas como produtos em vários segmentos corporativos, levando ao surgimento do que se convencionou chamar de Economia das APIs e ao estabelecimento de inúmeras companhias especializadas neste nicho de atividade (caso de muitas Fintechs).

Esse uso em larga escala de APIs acaba por criar a necessidade de um gerenciamento efetivo dessas estruturas, considerando para tanto aspectos como segurança, caching, o formato dos dados manipulados e limites de utilização (throttling). Muito embora isto possa ser resolvido a nível de código, constitui prática mais do que comum a adoção de APIs Gateways como uma alternativa centralizada e que contribui para evitar inúmeros ajustes em cada aplicação existente.

E se desejarmos nos valer dos benefícios decorrentes da adoção de um API Gateway como um serviço gerenciado, dispensando assim grandes esforços na configuração de toda a infraestrutura? Há alguma alternativa assim dentro da nuvem Microsoft?

A resposta a tais perguntas está no Azure API Management!

Partindo do gerenciamento de back-ends utilizando funcionalidades típicas de APIs Gateways, podemos destacar ainda como capacidades do Azure API Management:

  • APIs podem ser disponibilizadas como Produtos (Products), com usuários contando com Subscriptions (Assinaturas) para acesso aos mesmos;
  • Um portal (Developer Portal) para permitir o acesso a Produtos disponíveis e gerenciamento de Subscriptions;
  • Controle de acesso de usuários a Produtos, com os mesmos pertencendo a grupos como Administrator, Developer e Guest;
  • A definição de Policies, de maneira a determinar os comportamentos esperados ao se interagir com um Back-end. Existem inúmeras Policies pré-definidas, com funcionalidades como Cache, recursos para facilitar a manipulação de elementos como Headers e Bodies, Rate Limit/Throttling, transformações XML-JSON e até mesmo a configuração de mecanismos de autenticação (JWT, OAuth 2.0).

Em duas lives que ocorreram este ano (2022) no Canal .NET abordei em detalhes o uso do Azure API Management com diferentes cenários.

Na primeira live demonstrei o uso de caching, a configuração de rate limits, Subscriptions, o suporte a OpenAPI e a navegação pelo Developer Portal. O exemplo em questão se baseou em uma aplicação publicada através do Azure App Service. A gravação está disponível no YouTube:

Já a segunda live focou no monitoramento de um recurso do API Management com o Application Insights, além de aplicações .NET preparadas para tratar situações que envolvam Rate Limit/Throttling (utilizando a biblioteca Polly) em uma API REST publicada via Azure Container Apps. Também é possível assistir à gravação no YouTube:

As aplicações que consomem o endpoint configurado com Rate Limit/Throttling foram disponibilizadas como repositórios no GitHub:

.NET 6 + Consumo de API REST de contagem de acessos + Azure API Management Subscription Key + Código Resiliente com Polly + Fallback + Rate Limit

.NET 6 + Consumo de API REST de contagem de acessos + Azure API Management Subscription Key + Código Resiliente com Polly + Rate Limit Policy

Caso achem úteis estas soluções, peço por favor um ⭐️ nos repositórios apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

E finalizo este post com um convite…

Confira neste evento ONLINE e GRATUITO do .NET SP (Meetup edição #102) com transmissão pelo canal Coding Night os principais conceitos sobre API Gateway e Service Mesh, sobretudo de que forma estas soluções podem ajudar no desenvolvimento de aplicações… Funcionalidades que auxiliam em questões de segurança, controle e observabilidade, tudo isto sem a necessidade de codificação!

Palestrante: Patrick Reinan (Via)

Quando: 16/08/2022 (terça) a partir das 21:00 - horário de Brasília

Segue o link para inscrições, a transmissão acontecerá no YouTube: https://bit.ly/meetup-dotnetsp-102

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker