Partager via


Simuler la limitation sur les API Microsoft 365

En règle générale, les tests de limitation sont difficiles, car il se produit rarement, lorsque les serveurs Microsoft 365 sont sous une charge importante. À l’aide du proxy de développement, vous pouvez simuler des réponses de limitation et vérifier si votre application la gère correctement.

Pour simuler la limitation sur les API Microsoft 365, utilisez GraphRandomErrorPlugin et RetryAfterPlugin. Renvoie GraphRandomErrorPlugin les 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 démarrer, activez et GraphRandomErrorPlugin RetryAfterPlugin dans votre fichier de configuration du 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 GraphRandomErrorPlugin fichier de configuration avant. Si vous l’ajoutez après, la demande échoue avant GraphRandomErrorPlugin que la RetryAfterPlugin demande ne puisse la gérer.

Ensuite, configurez l’option GraphRandomErrorPlugin pour simuler des 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 le proxy de développement avec votre fichier de configuration et testez votre application pour voir comment elle gère la limitation.

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

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 requête.