Simulace chyb z rozhraní Microsoft Graph API

Na první pohled
Cílem: Testování způsobu zpracování chyb rozhraní Microsoft Graph API
Čas: 10 minut
Zásuvné moduly:GraphRandomErrorPlugin
Požadavky:Nastavení dev proxy serveru

Microsoft Graph je kolekce rozhraní API, která poskytují přístup k datům a přehledům v Microsoftu 365. Když ve své aplikaci používáte Microsoft Graph, měli byste otestovat, jak aplikace zpracovává chyby rozhraní API. Dev Proxy umožňuje simulovat chyby v libovolném rozhraní Microsoft Graph API pomocí nástroje GraphRandomErrorPlugin.

Je GraphRandomErrorPlugin optimalizována pro práci s Microsoft Graphem a simuluje konkrétní chyby, které může Microsoft Graph vrátit.

Začněte tím, že povolíte GraphRandomErrorPlugin ve vašem konfiguračním souboru.

Soubor: 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/*"
      ]
    }
  ]
}

Tip

Výše uvedený fragment kódu naslouchá žádostem o Microsoft Graph ve všech cloudech Microsoftu. Pokud chcete simulovat chyby jenom v konkrétním cloudu Microsoftu, odeberte adresy URL, které nepotřebujete.

Spusťte dev Proxy s konfiguračním souborem a pomocí aplikace zjistěte, jak tyto chyby zpracovává. Pro každý odpovídající požadavek určuje vývojový proxy server, jestli se má simulovat chyba, nebo předat požadavek do Microsoft Graphu pomocí nakonfigurované míry selhání. Když dev proxy simuluje chybu, náhodně vybere jednu z chyb, které Microsoft Graph používá, a vrátí chybovou odpověď na vaši aplikaci.

Konfigurace chyb pro simulaci

Ve výchozím nastavení GraphRandomErrorPlugin simuluje následující chyby.

metoda HTTP Možné chyby
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 Timeout507 Insufficient Storage
PUT 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, , 504 Gateway Timeout507 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 Timeout507 Insufficient Storage

Pokud chcete otestovat konkrétní chování, například omezování, nakonfigurujte plugin tak, aby používal pouze relevantní chyby pomocí možnosti --allowed-errors.

devproxy --allowed-errors 429

Alternativně můžete vlastnost v objektu allowedErrors v konfiguračním graphRandomErrorPlugin souboru nakonfigurovat.

Soubor: devproxyrc.json

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

Dev Proxy používá pouze povolené chyby, které platí pro každou metodu HTTP, jak je uvedeno v předchozí tabulce. Pokud se žádná z povolených chyb nevztahuje na metodu, dev Proxy předá požadavky s danou metodou do Microsoft Graph. Pokud například povolíte pouze 507, Dev Proxy selže u požadavků POST, PUT a DELETE, ale požadavky PATCH a GET propustí. Dev Proxy také předává požadavky pomocí metod, které nejsou uvedené v tabulce, například HEAD nebo OPTIONS.

Simulace chyb v dávkových požadavcích Microsoft Graphu

Dev Proxy simuluje chyby v dávkových požadavcích do Microsoft Graphu stejným způsobem jako u běžných požadavků. Když Dev Proxy nevyhoví jednomu nebo více požadavkům v dávkovém požadavku, vrátí 424 Failed Dependency odpověď na celou dávku požadavků, stejně jako to dělá Microsoft Graph.

Pokud některý požadavek v dávce používá metodu, pro kterou se nepoužije žádná z povolených chyb, dev proxy předá celou dávku do Microsoft Graph, protože dávková odpověď musí obsahovat odpověď pro každý požadavek v dávce.

Viz také