Criar aplicações interativas com as APIs do Microsoft Graph

Este artigo descreve um padrão de integração comum do Microsoft Graph para um cenário empresarial que requer uma IU que pode criar, atualizar e gerir mensagens de canal em tempo real. Este cenário depende dos serviços do Microsoft 365, como enviar e receber mensagens de diferentes equipas.

Este cenário tem os seguintes requisitos de arquitetura:

  • Um tipo de integração de aplicações, uma vez que se baseia em funcionalidades complexas do Microsoft 365.
  • Um fluxo de dados bidirecional entre a aplicação e o Microsoft 365.
  • Um baixo volume de dados em comparação com sistemas automatizados baseados em interações humanas individuais. Consoante o número de utilizadores, o volume de dados pode ser elevado.
  • Uma operação de dados em tempo real na aplicação, com algumas operações assíncronas do lado do servidor, como a entrega de e-mails a um cliente remoto.

A melhor opção para esta aplicação é utilizar as APIs HTTP RESTful do Microsoft Graph. A aplicação cliente responde às ações do utilizador e pode fazer pedidos e processar os dados a uma velocidade controlada pelo ambiente do cliente.

O diagrama seguinte mostra a arquitetura desta solução.

Um diagrama que mostra uma aplicação de terceiros a autenticar com Microsoft Entra ID e a comunicar com as APIs do Microsoft Graph, que interagem através de HTTP com aplicações como o Teams, o Planner, o OneDrive e o SharePoint.

Componentes da solução

A arquitetura da solução inclui os seguintes componentes:

  • Serviço de Aplicativo do Azure, que lhe permite criar e alojar aplicações Web, back-ends móveis e APIs RESTful na sua linguagem de programação preferida, sem gerir a infraestrutura. Oferece dimensionamento automático e elevada disponibilidade, suporta o Windows e o Linux e permite implementações automatizadas a partir do GitHub, do Azure DevOps ou de qualquer repositório git.
  • Microsoft Entra ID é necessário para gerir a autenticação para as APIs do Microsoft Graph e suporta permissões delegadas e de aplicação para ativar o fluxo OAuth.
  • Banco de Dados SQL é utilizado para armazenar dados e estado da aplicação; este componente é opcional.
  • APIs RESTful do Microsoft Graph acedidas através de um único ponto final: https://graph.microsoft.com.
  • Uma aplicação que implementa lógica personalizada.

Considerações

As seguintes considerações suportam a utilização deste padrão de integração:

  • Disponibilidade: a aplicação cliente consulta periodicamente as APIs do Microsoft Graph para obter dados. A aplicação cliente pode fazer pedidos e processar os dados a uma velocidade controlada pelo ambiente do cliente.

  • Latência: a aplicação cliente consulta as APIs do Microsoft Graph para obter dados em tempo real; no entanto, pode haver alguma latência consoante as condições de rede e a carga no serviço Microsoft Graph.

  • Escalabilidade: a aplicação cliente pode ser dimensionada horizontalmente ao adicionar mais instâncias ao plano de Serviço de Aplicativo. As APIs do Microsoft Graph podem processar um grande número de pedidos, mas também têm limites de limitação e políticas para evitar abusos. A aplicação cliente deve implementar a lógica de repetição e o back-off exponencial para lidar corretamente com erros de limitação.

  • Complexidade da solução: embora esta solução possa utilizar o SDK do Microsoft Graph, ainda requer código personalizado para consultar e processar os dados. Se o volume de dados for grande, o processamento sequencial poderá não ser suficiente e o processamento paralelo poderá ser necessário. Por este motivo, esta solução tem um nível médio de complexidade.