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 Microsoft 365 pod velkým zatížením. Pomocí vývojového proxy serveru můžete simulovat odpovědi na omezování a zkontrolovat, jestli je vaše aplikace zpracovává správně.

Pokud chcete simulovat omezování v rozhraních API Microsoftu 365, použijte GraphRandomErrorPlugin a RetryAfterPlugin. Vrátí GraphRandomErrorPlugin odpovědi na omezování pro rozhraní API Microsoftu 365. Ověří RetryAfterPlugin , že se vaše aplikace vrátí zpět podle pokynů rozhraní API.

Začněte tím, že v konfiguračním GraphRandomErrorPlugin souboru dev proxy povolíte a 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/*"
  ]
}

Upozornění

Do konfiguračního RetryAfterPlugin souboru přidejte před .GraphRandomErrorPlugin Pokud ho přidáte za, bude požadavek neúspěšný GraphRandomErrorPlugin před tím, než ho RetryAfterPlugin bude mít možnost zpracovat.

Dále nakonfigurujte pro 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 pomocí konfiguračního souboru a otestujte aplikaci, abyste zjistili, jak zpracovává omezování.

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

Tato zpráva znamená, že vaše aplikace nezvládá omezování správně 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 počkal na dobu uvedenou v Retry-After hlavičce.