Sdílet prostřednictvím


Simulace omezování v rozhraních API Microsoftu 365

Testování omezování je obvykle obtížné, protože k němu dochází zřídka, když jsou servery Microsoftu 365 zatížené velkým zatížením. Pomocí dev proxy serveru můžete simulovat odpovědi na omezování a zkontrolovat, jestli ji vaše aplikace zpracovává správně.

K simulaci omezování rozhraní API Microsoftu 365 použijte GraphRandomErrorPlugin a RetryAfterPlugin. Vrátí GraphRandomErrorPlugin odpovědi na omezování rozhraní API Microsoftu 365. Ověří RetryAfterPlugin , že se vaše aplikace znovu vypne podle pokynů rozhraní API.

Začněte tím, že povolíte konfigurační soubor dev proxy serveru a RetryAfterPlugin v jeho konfiguračním GraphRandomErrorPlugin souboru.

{
  "$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/*"
  ]
}

Upozornění

Přidejte před RetryAfterPlugin konfigurační GraphRandomErrorPlugin soubor. Pokud ho přidáte později, požadavek se nezdaří GraphRandomErrorPlugin předtím RetryAfterPlugin , než bude mít možnost ji zpracovat.

Dále nakonfigurujte simulaci GraphRandomErrorPlugin chyb omezování.

{
  "$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 ]
  }
}

Spusťte dev Proxy s konfiguračním souborem a otestujte aplikaci, abyste viděli, jak zpracovává omezování.

Pokud se aplikace po omezení zase vypne, ale nečeká na dobu uvedenou v požadavcích, zobrazí se podobná Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttledzpráva.

Tato zpráva znamená, že vaše aplikace nezpracovává správně omezování a zbytečně prodlužuje omezování. Pokud chcete zlepšit způsob, jakým vaše aplikace zpracovává omezování, aktualizujte kód tak, aby před opakováním požadavku čekal na dobu uvedenou v Retry-After hlavičce.