Partager via


Simuler la limitation sur les API Microsoft 365

En règle générale, les tests de limitation sont difficiles, car ils se produisent rarement lorsque les serveurs Microsoft 365 sont soumis à une charge importante. À l’aide du proxy de développement, vous pouvez simuler des réponses de limitation et case activée si votre application les gère correctement.

Pour simuler la limitation sur les API Microsoft 365, utilisez GraphRandomErrorPlugin et RetryAfterPlugin. Retourne GraphRandomErrorPlugin des réponses de limitation pour les API Microsoft 365. Vérifie RetryAfterPlugin que votre application est désactivée comme indiqué par l’API.

Pour commencer, activez et GraphRandomErrorPluginRetryAfterPlugin dans votre fichier de configuration de proxy de développement.

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

Attention

Ajoutez le RetryAfterPlugin avant dans GraphRandomErrorPlugin votre fichier de configuration. Si vous l’ajoutez après, la requête sera échouée par le GraphRandomErrorPlugin avant que n’ait la possibilité de RetryAfterPlugin la gérer.

Ensuite, configurez pour simuler les GraphRandomErrorPlugin erreurs de limitation.

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

Démarrez dev Proxy avec votre fichier de configuration et testez votre application pour voir comment elle gère la limitation.

Si votre application recule lorsqu’elle est limitée, mais n’attend pas la durée spécifiée sur les demandes, un message similaire à s’affiche Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.

Ce message indique que votre application ne gère pas correctement la limitation et prolonge inutilement la limitation. Pour améliorer la façon dont votre application gère la limitation, mettez à jour votre code pour attendre la durée spécifiée dans l’en-tête Retry-After avant de réessayer la demande.