Поделиться через


Имитация регулирования в API Microsoft 365

Как правило, регулирование тестирования трудно, так как это происходит редко, когда серверы Microsoft 365 находятся под тяжелой нагрузкой. Используя прокси-сервер разработки, можно имитировать ответы регулирования и проверять правильность обработки приложения.

Чтобы имитировать регулирование в API Microsoft 365, используйте GraphRandomErrorPlugin и RetryAfterPlugin. Возвращает GraphRandomErrorPlugin ответы регулирования для API Microsoft 365. Проверяет RetryAfterPlugin , что приложение отключается, как показано API.

Чтобы начать, включите GraphRandomErrorPlugin и RetryAfterPlugin в файле конфигурации прокси-сервера разработки.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [
    {
      "name": "RetryAfterPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    },
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "graphRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://graph.microsoft.com/v1.0/*",
    "https://graph.microsoft.com/beta/*",
    "https://graph.microsoft.us/v1.0/*",
    "https://graph.microsoft.us/beta/*",
    "https://dod-graph.microsoft.us/v1.0/*",
    "https://dod-graph.microsoft.us/beta/*",
    "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
    "https://microsoftgraph.chinacloudapi.cn/beta/*",
    "!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
    "https://*.sharepoint.*/*_api/*",
    "https://*.sharepoint.*/*_vti_bin/*",
    "https://*.sharepoint-df.*/*_api/*",
    "https://*.sharepoint-df.*/*_vti_bin/*"
  ]
}

Внимание

RetryAfterPlugin Добавьте его перед файлом GraphRandomErrorPlugin конфигурации. Если вы добавите его после, запрос завершится сбоем GraphRandomErrorPlugin до того, как RetryAfterPlugin у него есть шанс обработать его.

Затем настройте GraphRandomErrorPlugin имитацию ошибок регулирования.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [
    {
      "name": "RetryAfterPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    },
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "graphRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://graph.microsoft.com/v1.0/*",
    "https://graph.microsoft.com/beta/*",
    "https://graph.microsoft.us/v1.0/*",
    "https://graph.microsoft.us/beta/*",
    "https://dod-graph.microsoft.us/v1.0/*",
    "https://dod-graph.microsoft.us/beta/*",
    "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
    "https://microsoftgraph.chinacloudapi.cn/beta/*",
    "!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
    "https://*.sharepoint.*/*_api/*",
    "https://*.sharepoint.*/*_vti_bin/*",
    "https://*.sharepoint-df.*/*_api/*",
    "https://*.sharepoint-df.*/*_vti_bin/*"
  ],
  "graphRandomErrorPlugin": {
    "allowedErrors": [ 429 ]
  }
}

Запустите прокси-сервер разработки с файлом конфигурации и протестируйте приложение, чтобы узнать, как он обрабатывает регулирование.

Если приложение отключается при регулировании, но не ожидает времени, указанного в запросах, отображается сообщение, аналогичное Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.

Это сообщение указывает, что приложение не обрабатывает регулирование правильно и ненужно продлевает регулирование. Чтобы улучшить регулирование приложения, обновите код, чтобы дождаться времени, указанного в заголовке Retry-After , прежде чем повторить запрос.