Создание интерактивных приложений с помощью API Microsoft Graph

В этой статье описывается распространенный шаблон интеграции Microsoft Graph для бизнес-сценария, в котором требуется пользовательский интерфейс, который может создавать, обновлять и управлять сообщениями каналов в режиме реального времени. Этот сценарий зависит от служб Microsoft 365, таких как отправка и получение сообщений от разных команд.

Этот сценарий имеет следующие требования к архитектуре:

  • Тип интеграции приложения, так как он зависит от сложных функций Microsoft 365.
  • Двунаправленный поток данных между приложением и Microsoft 365.
  • Низкий объем данных по сравнению с автоматизированными системами, основанными на отдельных взаимодействиях человека. Однако в зависимости от количества пользователей объем данных может быть высоким.
  • Операция с данными в реальном времени в приложении с некоторыми асинхронными операциями на стороне сервера, такими как доставка электронной почты удаленному клиенту.

Лучший выбор для этого приложения — использовать API-интерфейсы HTTP RESTful Microsoft Graph. Клиентское приложение реагирует на действия пользователя и может выполнять запросы и обрабатывать данные со скоростью, контролируемой клиентской средой.

На следующей схеме показана архитектура для этого решения.

Схема, на которой показано стороннее приложение, проверяющее подлинность с помощью Microsoft Entra ID и взаимодействующее с API Microsoft Graph, которые взаимодействуют по протоколу HTTP с такими приложениями, как Teams, Планировщик, OneDrive и SharePoint.

Компоненты решения

Архитектура решения включает в себя следующие компоненты:

  • Служба приложений Azure, который позволяет создавать и размещать веб-приложения, мобильные серверные серверы и ИНТЕРФЕЙСы API RESTful на предпочитаемом языке программирования без управления инфраструктурой. Он предлагает автоматическое масштабирование и высокий уровень доступности, поддерживает Windows и Linux, а также включает автоматическое развертывание из GitHub, Azure DevOps или любого репозитория Git.
  • Microsoft Entra ID требуется для управления проверкой подлинности для API Microsoft Graph и поддерживает делегированные разрешения и разрешения приложений для включения потока OAuth.
  • База данных SQL используется для хранения данных и состояния приложения; этот компонент является необязательным.
  • API-интерфейсы RESTful Microsoft Graph, доступ к которые осуществляется через одну конечную точку: https://graph.microsoft.com.
  • Приложение, реализующее пользовательскую логику.

Рекомендации

Использование этого шаблона интеграции поддерживается следующими рекомендациями.

  • Доступность. Клиентское приложение периодически опрашивает API Microsoft Graph на наличие данных. Клиентское приложение может выполнять запросы и обрабатывать данные со скоростью, контролируемой клиентской средой.

  • Задержка: клиентское приложение запрашивает API-интерфейсы Microsoft Graph для получения данных в режиме реального времени; однако в зависимости от условий сети и нагрузки на службу Microsoft Graph может возникнуть некоторая задержка.

  • Масштабируемость. Клиентское приложение может масштабироваться по горизонтали путем добавления дополнительных экземпляров в план Служба приложений. API Microsoft Graph могут обрабатывать большое количество запросов, но они также имеют ограничения регулирования и политики для предотвращения злоупотреблений. Клиентское приложение должно реализовать логику повторных попыток и экспоненциальную обратную сторону для корректной обработки ошибок регулирования.

  • Сложность решения. Хотя это решение может использовать пакет SDK для Microsoft Graph, ему по-прежнему требуется пользовательский код для опроса и обработки данных. Если объем данных большой, то последовательной обработки может быть недостаточно, и может потребоваться параллельная обработка. По этой причине это решение имеет средний уровень сложности.