Boa tarde, visto que a API faz com que um recurso da web se torne integrável, gostaria de uma opinião em relação à seguinte decisão arquitetural:
Tenho uma API principal 1 que fornece a maioria dos recursos para um determinado Client, inclusive autenticação e gerenciamento de sessão. Porém, uma equipe de desenvolvimento criou uma API2 com um recurso independente (Central de Mensagens, a saber) que não faz nada além de enviar mensagens. O Client que consome a minha API1, precisará enviar mensagens através da API2. O que fazer?
- O Client consumir diretamente as duas APIs independentemente (neste caso, mesmo com o usuário logado na API1, o Client precisará enviar Login e Senha pra API2 sempre);
- A API1 consumir a API2, fazendo com que o Client consuma apenas a API1;
- Gerar um pacote Nuget da API2 e instalar na API1;
Obs: Várias outras aplicações também poderão consumir a API2
Na minha opinião a opção 2 seria a melhor, pois a API2 continuará independente e disponível para várias outras aplicações. E a API1 continuará sendo o ponto principal do Client, gerenciando a sessão do usuário, etc. Porém, vejo uma requisição HTTP a mais neste cenário (Client -> API1 -> API2), e gostaria de saber se isso impactaria muito no desempenho das requisições.
Claro que cada projeto tem suas especificidades, mas gostaria de saber de um modo geral, a opinião de vocês em relação a esse cenário de composição de APIs.