Simular erros das APIs do Microsoft Graph

Visão geral
Objetivo: Testar como seu aplicativo lida com erros de API do Microsoft Graph
Tempo: 10 minutos
Plugins:GraphRandomErrorPlugin
Pré-requisitos:Configurar o Proxy de Desenvolvimento

O Microsoft Graph é uma coleção de APIs que fornecem acesso a dados e insights no Microsoft 365. Ao usar o Microsoft Graph em seu aplicativo, você deve testar como seu aplicativo lida com erros de API. O Dev Proxy permite simular erros em qualquer API do Microsoft Graph usando o GraphRandomErrorPlugin.

O GraphRandomErrorPlugin é otimizado para funcionar com o Microsoft Graph e simula os erros específicos que o Microsoft Graph pode retornar.

Para começar, habilite o recurso GraphRandomErrorPlugin em seu arquivo de configuração.

Arquivo: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "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/*"
      ]
    }
  ]
}

Dica

O snippet acima escuta solicitações para o Microsoft Graph em todas as nuvens da Microsoft. Se você quiser simular erros apenas em uma nuvem específica da Microsoft, remova as URLs desnecessárias.

Inicie o Dev Proxy com seu arquivo de configuração e use seu aplicativo para ver como ele lida com os erros. Para cada solicitação correspondente, o Proxy de Desenvolvimento determina se deve simular um erro ou passar a solicitação para o Microsoft Graph usando a taxa de falha configurada. Quando o Dev Proxy simula um erro, ele seleciona aleatoriamente um dos erros que o Microsoft Graph usa e retorna uma resposta de erro ao seu aplicativo.

Configurar erros para simular

Por padrão, o GraphRandomErrorPlugin simula os erros a seguir.

método HTTP Possíveis erros
GET 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, , 503 Service Unavailable504 Gateway Timeout
POST 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, , 507 Insufficient Storage
PUT 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 507 Insufficient Storage
PATCH 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, , 503 Service Unavailable504 Gateway Timeout
DELETE 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 507 Insufficient Storage

Se você quiser testar comportamentos específicos, como limitação, configure o plug-in para usar apenas os erros relevantes usando a opção --allowed-errors.

devproxy --allowed-errors 429

Como alternativa, você pode configurar a propriedade allowedErrors no objeto graphRandomErrorPlugin em seu arquivo de configuração.

Arquivo: devproxyrc.json

{
  "graphRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/graphrandomerrorplugin.schema.json",
    "allowedErrors": [ 429 ]
  }
}

O Proxy de Desenvolvimento usa apenas os erros permitidos que se aplicam a cada método HTTP, conforme listado na tabela anterior. Se nenhum dos erros permitidos se aplicar a um método, o Dev Proxy passará solicitações com esse método para o Microsoft Graph. Por exemplo, se você permitir apenas 507, o Proxy de Desenvolvimento falhará nas solicitações POST, PUT e DELETE, mas deixará passar as solicitações GET e PATCH. O Proxy de Desenvolvimento também encaminha solicitações com métodos que não estão listados na tabela, como HEAD ou OPTIONS.

Simular erros em solicitações em lote do Microsoft Graph

O Dev Proxy simula erros em solicitações em lote para o Microsoft Graph da mesma forma que faz para solicitações regulares. Quando o Proxy de Desenvolvimento falha em uma ou mais solicitações em uma solicitação em lote, ele retorna uma 424 Failed Dependency resposta para toda a solicitação em lote, assim como o Microsoft Graph faria.

Se qualquer solicitação no lote usar um método para o qual nenhum dos erros permitidos se aplicar, o Dev Proxy passará todo o lote para Microsoft Graph, pois uma resposta em lote deve incluir uma resposta para cada solicitação no lote.

Consulte também