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 sottoposti a carico elevato. Usando il proxy di sviluppo, è possibile simulare le risposte di limitazione e verificare se l'applicazione la 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 ridistrutti come indicato dall'API.
Per iniziare, abilitare GraphRandomErrorPlugin
e RetryAfterPlugin
nel file di configurazione di Dev Proxy.
{
"$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 l'oggetto RetryAfterPlugin
abbia 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 delle richieste. Per migliorare il modo in cui l'app gestisce la limitazione, aggiornare il codice in modo che attenda il periodo di tempo specificato nell'intestazione Retry-After
prima di ritentare la richiesta.
Feedback su Dev Proxy
Dev Proxy è un progetto di open source. Selezionare un collegamento per fornire feedback: