Создание интерактивных приложений с помощью API Microsoft Graph
В этой статье описывается распространенный шаблон интеграции Microsoft Graph для бизнес-сценария, в котором требуется пользовательский интерфейс, который может создавать, обновлять и управлять сообщениями каналов в режиме реального времени. Этот сценарий зависит от служб Microsoft 365, таких как отправка и получение сообщений от разных команд.
Этот сценарий имеет следующие требования к архитектуре:
- Тип интеграции приложения, так как он зависит от сложных функций Microsoft 365.
- Двунаправленный поток данных между приложением и Microsoft 365.
- Низкий объем данных по сравнению с автоматизированными системами, основанными на отдельных взаимодействиях человека. Однако в зависимости от количества пользователей объем данных может быть высоким.
- Операция с данными в реальном времени в приложении с некоторыми асинхронными операциями на стороне сервера, такими как доставка электронной почты удаленному клиенту.
Лучший выбор для этого приложения — использовать API-интерфейсы HTTP RESTful Microsoft Graph. Клиентское приложение реагирует на действия пользователя и может выполнять запросы и обрабатывать данные со скоростью, контролируемой клиентской средой.
На следующей схеме показана архитектура для этого решения.
Компоненты решения
Архитектура решения включает в себя следующие компоненты:
- Служба приложений 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, ему по-прежнему требуется пользовательский код для опроса и обработки данных. Если объем данных большой, то последовательной обработки может быть недостаточно, и может потребоваться параллельная обработка. По этой причине это решение имеет средний уровень сложности.