Simulace omezování v rozhraních API Microsoftu 365
Testování omezování je obvykle obtížné, protože k němu dochází zřídka, když jsou servery Microsoftu 365 zatížené velkým zatížením. Pomocí dev proxy serveru můžete simulovat odpovědi na omezování a zkontrolovat, jestli ji vaše aplikace zpracovává správně.
K simulaci omezování rozhraní API Microsoftu 365 použijte GraphRandomErrorPlugin a RetryAfterPlugin. Vrátí GraphRandomErrorPlugin
odpovědi na omezování rozhraní API Microsoftu 365. Ověří RetryAfterPlugin
, že se vaše aplikace znovu vypne podle pokynů rozhraní API.
Začněte tím, že povolíte konfigurační soubor dev proxy serveru a RetryAfterPlugin
v jeho konfiguračním GraphRandomErrorPlugin
souboru.
{
"$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/*"
]
}
Upozornění
Přidejte před RetryAfterPlugin
konfigurační GraphRandomErrorPlugin
soubor. Pokud ho přidáte později, požadavek se nezdaří GraphRandomErrorPlugin
předtím RetryAfterPlugin
, než bude mít možnost ji zpracovat.
Dále nakonfigurujte simulaci GraphRandomErrorPlugin
chyb omezová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 ]
}
}
Spusťte dev Proxy s konfiguračním souborem a otestujte aplikaci, abyste viděli, jak zpracovává omezování.
Pokud se aplikace po omezení zase vypne, ale nečeká na dobu uvedenou v požadavcích, zobrazí se podobná Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled
zpráva.
Tato zpráva znamená, že vaše aplikace nezpracovává správně omezování a zbytečně prodlužuje omezování. Pokud chcete zlepšit způsob, jakým vaše aplikace zpracovává omezování, aktualizujte kód tak, aby před opakováním požadavku čekal na dobu uvedenou v Retry-After
hlavičce.