O que é a API "Manager" e como devo (e não devo) utilizá-la?

A API chamada "Manager" é uma API disponibilizada pela Sensedia para que nossos clientes consigam aplicar configurações relacionadas ao design-time de APIs via chamadas HTTP.

Para entender isso melhor, vale ter em mente um diagrama simplificado da API Platform:

data control plane

O gateway recebe e trata as chamadas vindas das apps e envia as chamadas pros servidores corretos. Depois, recebe as respostas dos servidores e envia para cada respectiva app. Todo o processo de recebimento e resposta de chamadas faz parte do runtime das APIs e ocorre no que chamamos de data plane.

Em runtime, o gateway aplica uma série de configurações que são estabelecidas pelo usuário no momento de design das APIs, que ocorre no que chamamos de control plane. No nosso caso, essas configurações são estabelecidas no API Manager, que é a interface gráfica de controle da Plataforma.

Ou seja, no API Manager o usuário define como o gateway se comportará. Por exemplo, é pelo Manager que definimos que uma determinada API só aceitará access tokens gerados pelo fluxo Authorization Code de OAuth e que outra API terá limitação de chamadas por minuto. Essas configurações são enviadas ao gateway, que as aplica em runtime.

A API "Manager" nada mais é que uma API que nós disponibilizamos para que as configurações de control plane sejam feitas por chamadas HTTP ao invés de exclusivamente pela interface gráfica do API Manager. Isso é muito útil quando o usuário deseja configurar a plataforma por CLI ou quando quer implementar automatizações de CI/CD nos processos de design-time das APIs.

A separação entre as duas esferas da Plataforma (o control plane e o data plane) é essencial para que todo o ecossistema seja estável e escalável. Por isso, é importante que a API "Manager" seja utilizada somente como uma ferramenta de auxílio de design-time.

Isso significa que você nunca deve incluir chamadas à API "Manager" como parte do fluxo produtivo de uma outra API. Ao fazer isso, você sobrepõe o control plane e o data plane e pode ocasionar instabilidade nas suas APIs (com risco de perda de chamadas por timeout ou latência elevada, por exemplo).

Thanks for your feedback!
EDIT
How useful was this article to you?