Nesta série de artigos, irei demonstrar como publicar suas API’s utilizando o API Gateway da Azure, também conhecido como API Management.
Antes de mais nada, precisamos estabelecer alguns princípios e conceitos. API Manager ≠ API Gateway.
API Gateway
API Gateway cria um ponto único de acesso, filtrando de inúmeras maneiras quem acessa suas APIs. Considere um API Gateway como uma ferramenta para redirecionamento e filtragem de tráfego para serviços terceiros ou suas API’s. Podendo realizar alguma dessas atividades:
- Ponto único de acesso atuando como middleware, se colocando entre suas APIs e seus respectivos usuários.
- Filtragem de dados na entrada, podendo redirecionar o chamado à API para o local correto, baseado nos mais diferentes parâmetros de entrada, e, até mesmo, ignorar a requisição caso seja desejado, sem levar tráfego à sua API. Imagine aqui uma API que espera obrigatoriamente 4 parâmetros e a requisição só chegou com 3. O Gateway bloqueia a requisição sem onerar a sua API para fazer este tipo de validação.
- Mecanismos de segurança, que incluem autenticação de usuário e logs de acesso. Sendo assim você pode adicionar uma camada extra de segurança para sua API, realizando validação de JWT por exemplo.
- Limitação de acesso baseada em usuário, que permite limitar o acesso do usuário, como números de requisições no mês ou nos últimos 10 segundos. Assim você possui uma proteção DDOs já de cada no seu gateway. 🙂
API Manager
Este tipo de produto de fornece uma camada de gestão para API Gateways. Além de definir o comportamento de um API Gateway, o API Manager lida com análises de cada requisição, autenticações, redirects, implementação de controle de versão, criação de dashboard de acesso, possibilidade de monetização através de quantidade de requests etc. Além de tudo que o gateway realiza, o manager pode realizar:
- Insights corporativos das APIs através de Dashboards.
- Controle do ciclo de vida das APIs.
- Prototipação de API, versionamento das APIs.
- Possibilidade de monetização das APIs.
- Criação de Políticas que serão compartilhadas através de todos endpoints.
É comum de se ver hoje como ferramentas de mercado, API Gateways que na verdade são API Managers, já que o termo gateway é bem mais difundido. E esta série de artigos que irei trazer, fala do API Manager da Azure, que realiza as funções de gateway também.
Na página inicial do produto, é fácil ver descrições do tipo:
Crie um gateway de API e um portal do desenvolvedor em minutos
Use o Gerenciamento de API do Azure como uma solução de turnkey para a publicação de APIs para clientes externos e internos. Crie rapidamente gateways de API modernos e consistentes para serviços de back-end existentes hospedados em qualquer lugar. Exponha, publique e gerencie arquiteturas de microsserviços como APIs. Entenda melhor e otimize suas APIs.
Escolha entre um modelo de uso dedicado, com um portal do desenvolvedor e recursos subjacentes isolados e alocados previamente ou um modelo de uso com base em consumo sem servidor, com provisionamento imediato, dimensionamento automatizado, alta disponibilidade interna e preço pago por ação.
Bom, antes de continuarmos, vale relembrar que você precisa ter uma conta na Azure válida. Apesar do gateway não ser uma ferramenta gratuita, ela possui 1 milhão de chamadas gratuitas e somente após este consumo, vocês será cobrado. Veja detalhamentos dos preços aqui.
Entre na sua conta do Azure e acesse o produto API Management.
Clique em Criar e preencha os parâmetros do seu API Manager, e clique em Create, a operação levará de 10 a 15 minutos para que o API Manager da Microsoft esteja disponível para você.
Com isto, já podemos publicar nossa API através do Gateway. Porém antes disso precisamos garantir que a nossa API possui a especificação de “Open API”. Nos meus projetos, eu utilizo o Swagger para geração das rotas e base de documentação. Publiquei em meu github um projeto clean de WebAPI utilizando Swagger que você pode utilizar de base ou caso queira, pode consultar a documentação de como implementar na sua API já existente.
Caso você não tenha nenhuma API publicada e quer realizar somente um teste com o Manager, pode utilizar esta API que a Microsoft disponibiliza na documentação da ferramenta.
Caso ainda, você não tenha uma especificação de Open API e não queira/possa utilizar, não tem problema. Você pode criar uma API à partir do zero ou dos seguintes modelos:
Após no menu “APIs”, clique em uma opção desejada (como da imagem acima) para publicar seu primeiro endpoint. Eu irei selecionar a opção OpenAPI:
Após criar sua API, ela aparecerá no menu e você terá acesso ao painel administrativo da mesma:
Clique em Settings, pois iremos precisar realizar alguns ajustes para testarmos nossa API:
• Preencha o campo Web service URL, com a url base da sua API
• Desmarque a opção Subscription required
• Caso você não utilize SSL marque a opção Both em URL scheme
• Marque none na opção User authorization
Clique em salvar.
Com isto, você já pode testar sua API, tanto pelo navegador quanto pela aba test do API Manager:
Pronto! Sua API já está publicada e pronto para uso.
Nos próximos artigos, iremos ver como adicionar melhorias na API, como segurança, proteção, filtros, versionamento etc.
Um grande abraço.