Compartir a través de


Simulación de 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 en 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 se vuelve a desactivar 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 el RetryAfterPlugin elemento antes de en el GraphRandomErrorPlugin archivo de configuración. Si lo agrega después, se producirá un error en la solicitud antes GraphRandomErrorPluginRetryAfterPlugin de que tenga la oportunidad de controlarla.

A continuación, configure para GraphRandomErrorPlugin 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 correctamente la limitación y prolonga innecesariamente 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.