Compartir a través de


Simular la limitación en las API de Microsoft 365

Normalmente, la limitación de pruebas es difícil porque rara vez se produce cuando los servidores de Microsoft 365 están bajo una carga pesada. Con el proxy de desarrollo, puede simular respuestas de limitación y comprobar si la aplicación la controla correctamente.

Para simular la limitación en las API de Microsoft 365, use GraphRandomErrorPlugin y RetryAfterPlugin. GraphRandomErrorPlugin devuelve respuestas de limitación para las API de Microsoft 365. RetryAfterPlugin Comprueba que la aplicación vuelve a desactivarse según lo indicado por la API.

Para empezar, habilite y RetryAfterPlugin en el GraphRandomErrorPlugin archivo de configuración del proxy de desarrollo.

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

Precaución

Agregue antes del RetryAfterPlugin elemento en el GraphRandomErrorPlugin archivo de configuración. Si lo agrega después, se producirá un error en GraphRandomErrorPlugin la solicitud antes de RetryAfterPlugin que tenga la oportunidad de controlarla.

A continuación, configure GraphRandomErrorPlugin para simular errores de limitació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 ]
  }
}

Inicie Dev Proxy con el archivo de configuración y pruebe la aplicación para ver cómo controla la limitación.

Si la aplicación vuelve a desactivarse cuando se limita, pero no espera la cantidad de tiempo especificada en las solicitudes, verá un mensaje similar a Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.

Este mensaje indica que la aplicación no controla la limitación correctamente y, innecesariamente, prolonga la limitación. Para mejorar la forma en que la aplicación controla la limitación, actualice el código para esperar la cantidad de tiempo especificada en el Retry-After encabezado antes de volver a intentar la solicitud.