Symulowanie ograniczania przepustowości w interfejsach API platformy Microsoft 365
Zazwyczaj testowanie ograniczania przepustowości jest trudne, ponieważ występuje rzadko, gdy serwery platformy Microsoft 365 są obciążone dużym obciążeniem. Korzystając z serwera proxy deweloperskiego, można symulować odpowiedzi ograniczania przepustowości i sprawdzić, czy aplikacja obsługuje ją poprawnie.
Aby symulować ograniczanie przepustowości w interfejsach API platformy Microsoft 365, użyj narzędzia GraphRandomErrorPlugin i polecenia RetryAfterPlugin. Funkcja GraphRandomErrorPlugin
zwraca odpowiedzi ograniczania przepustowości dla interfejsów API platformy Microsoft 365. Narzędzie RetryAfterPlugin
sprawdza, czy aplikacja jest cofana zgodnie z instrukcjami interfejsu API.
Aby rozpocząć, włącz element GraphRandomErrorPlugin
i RetryAfterPlugin
w pliku konfiguracji serwera proxy deweloperów.
{
"$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/*"
]
}
Uwaga
Dodaj element RetryAfterPlugin
przed elementem GraphRandomErrorPlugin
w pliku konfiguracji. W przypadku dodania go po tym żądaniu żądanie zakończy się niepowodzeniem GraphRandomErrorPlugin
, zanim RetryAfterPlugin
będzie możliwe jego obsłużenie.
Następnie skonfiguruj element , GraphRandomErrorPlugin
aby symulować błędy ograniczania przepustowości.
{
"$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 ]
}
}
Rozpocznij tworzenie serwera proxy przy użyciu pliku konfiguracji i przetestuj aplikację, aby zobaczyć, jak obsługuje ograniczanie przepustowości.
Jeśli aplikacja jest cofana, gdy jest ograniczona, ale nie czeka na czas określony w żądaniach, zostanie wyświetlony komunikat podobny do Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled
.
Ten komunikat wskazuje, że aplikacja nie obsługuje poprawnego ograniczania przepustowości i niepotrzebnie przedłuża ograniczanie przepustowości. Aby ulepszyć sposób obsługi ograniczania przepustowości przez aplikację, zaktualizuj kod, aby poczekać na czas określony w nagłówku Retry-After
przed ponowieniu próby żądania.