Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
De relance
Objetivo: Teste como o seu app lida com as restrições da API do Microsoft 365
Tempo: 10 minutos
Plugins:GraphRandomErrorPlugin, RetryAfterPlugin
Pré-requisitos:Configurar o Proxy de Desenvolvimento
Normalmente, é difícil testar a limitação porque isso ocorre raramente, apenas quando os servidores Microsoft 365 estão sob elevada carga. Ao utilizar o Dev Proxy, pode simular respostas de limitação e verificar se a sua aplicação as gere corretamente.
Para simular limitação em APIs do Microsoft 365, use o GraphRandomErrorPlugin e o RetryAfterPlugin. O GraphRandomErrorPlugin retorna respostas de controlo de limitação para APIs do Microsoft 365. O RetryAfterPlugin verifica se seu aplicativo recua conforme instruído pela API.
Para começar, habilite o GraphRandomErrorPlugin e RetryAfterPlugin no arquivo de configuração do Dev Proxy.
Ficheiro:devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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/*"
]
}
Atenção
Adicione o RetryAfterPlugin antes do GraphRandomErrorPlugin no seu arquivo de configuração. Se o adicionar depois, a solicitação falhará GraphRandomErrorPlugin antes que o RetryAfterPlugin tenha a oportunidade de a tratar.
Em seguida, configure o GraphRandomErrorPlugin para simular erros de limitação.
Ficheiro:devproxyrc.json (configuração completa)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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": {
"allowedErrors": [ 429 ]
}
}
Inicie o Dev Proxy com o seu ficheiro de configuração e teste a sua aplicação para ver como ela lida com a restrição de largura de banda.
Se seu aplicativo recuar quando limitado, mas não esperar pela quantidade de tempo especificada nas solicitações, você verá uma mensagem semelhante a Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.
Essa mensagem indica que o seu aplicativo não está gerindo a limitação corretamente e está a prolongar desnecessariamente essa limitação. Para melhorar a forma como seu aplicativo lida com a Retry-After limitação, atualize seu código para aguardar a quantidade de tempo especificada no cabeçalho antes de tentar novamente a solicitação.
Consulte também
- GraphRandomErrorPlugin - Referência completa
- RetryAfterPlugin - Verificar o comportamento de nova tentativa
- O que é o throttling - Conceitos
- Como lidar com a restrição de API - Boas práticas
- Glossário - Terminologia de Proxy de Desenvolvimento