Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На первый взгляд
Цель: Проверка того, как приложение обрабатывает регулирование API Microsoft 365
Время: 10 минут
Подключаемые модули:GraphRandomErrorPlugin, RetryAfterPlugin
Предварительные требования:настройка прокси-сервера разработки
Как правило, тестирование ограничения сложно, так как это происходит редко, когда серверы Microsoft 365 находятся под высокой нагрузкой. Используя прокси-сервер для разработки, вы можете моделировать ответы с задержками и проверять, правильно ли ваше приложение обрабатывает их.
Чтобы имитировать регулирование в API Microsoft 365, используйте GraphRandomErrorPlugin и RetryAfterPlugin. Возвращает GraphRandomErrorPlugin ответы регулирования для API Microsoft 365. Проверка RetryAfterPlugin подтверждает, что ваше приложение снижает активность, как это предусмотрено API.
Чтобы начать, включите GraphRandomErrorPlugin и RetryAfterPlugin в файле конфигурации прокси-сервера разработки.
Файл:devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/rc.schema.json",
"plugins": [
{
"name": "RetryAfterPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "GraphRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.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/*"
]
}
Внимание
Добавьте RetryAfterPlugin перед GraphRandomErrorPlugin в вашем файле конфигурации. Если вы добавите его позже, запрос будет отклонен GraphRandomErrorPlugin прежде чем RetryAfterPlugin сможет обработать его.
Затем настройте GraphRandomErrorPlugin для имитации ошибок ограничения скорости.
Файл:devproxyrc.json (полная конфигурация)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/rc.schema.json",
"plugins": [
{
"name": "RetryAfterPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "GraphRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.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": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/graphrandomerrorplugin.schema.json",
"allowedErrors": [ 429 ]
}
}
Запустите Dev Proxy с вашим файлом конфигурации и протестируйте приложение, чтобы узнать, как оно обрабатывает ограничение скорости.
Если приложение отключается при регулировании, но не ожидает времени, указанного в запросах, отображается сообщение, аналогичное Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.
Это сообщение указывает, что ваше приложение неправильно обрабатывает ограничение и необоснованно его затягивает. Чтобы улучшить управление ограничением скорости в вашем приложении, обновите код так, чтобы он ждал время, указанное в заголовке Retry-After, прежде чем повторять запрос.
См. также
- GraphRandomErrorPlugin — полная ссылка
- RetryAfterPlugin — проверка поведения повторных попыток
- Что такое регулирование — основные понятия
- Как управлять ограничением скорости API — лучшие практики
- Глоссарий — терминология прокси для разработки