Simulare la limitazione delle richieste nelle API di Microsoft 365
In genere, la limitazione dei test è difficile perché si verifica raramente, quando i server Microsoft 365 sono sotto carico elevato. Usando il proxy di sviluppo, è possibile simulare le risposte di limitazione e verificare se l'applicazione lo gestisce correttamente.
Per simulare la limitazione delle richieste nelle API di Microsoft 365, usare GraphRandomErrorPlugin e RetryAfterPlugin. Restituisce GraphRandomErrorPlugin
le risposte di limitazione per le API di Microsoft 365. RetryAfterPlugin
Verifica che l'app esegni come indicato dall'API.
Per iniziare, abilitare GraphRandomErrorPlugin
e RetryAfterPlugin
nel file di configurazione del proxy di sviluppo.
{
"$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/*"
]
}
Attenzione
Aggiungere prima di RetryAfterPlugin
GraphRandomErrorPlugin
nel file di configurazione. Se lo si aggiunge dopo, la richiesta verrà non riuscita da GraphRandomErrorPlugin
prima che abbia RetryAfterPlugin
la possibilità di gestirla.
Configurare quindi per GraphRandomErrorPlugin
simulare gli errori di limitazione.
{
"$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 ]
}
}
Avviare Dev Proxy con il file di configurazione e testare l'app per vedere come gestisce la limitazione.
Se l'applicazione viene disattivata quando viene limitata, ma non attende il periodo di tempo specificato nelle richieste, viene visualizzato un messaggio simile a Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled
.
Questo messaggio indica che l'applicazione non gestisce correttamente la limitazione e che inutilmente prolungare la limitazione. Per migliorare il modo in cui l'app gestisce la limitazione, aggiornare il codice per attendere la quantità di tempo specificata nell'intestazione Retry-After
prima di ripetere la richiesta.