Поделиться через


Имитация ошибок из API Microsoft Graph

Microsoft Graph — это коллекция API- интерфейсов, которые предоставляют доступ к данным и аналитическим сведениям в Microsoft 365. При использовании Microsoft Graph в приложении необходимо проверить, как приложение обрабатывает ошибки API. Dev Proxy позволяет вам имитировать ошибки в любом API Microsoft Graph, используя GraphRandomErrorPlugin.

Компонент GraphRandomErrorPlugin оптимизирован для работы с Microsoft Graph и имитирует конкретные ошибки, которые Microsoft Graph может возвращать.

Чтобы начать, включите GraphRandomErrorPlugin в файле конфигурации.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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/*"
      ]
    }
  ]
}

Совет

Приведенный выше фрагмент прослушивает запросы к Microsoft Graph во всех облаках Майкрософт. Если вы хотите имитировать ошибки только в определенном облаке Майкрософт, удалите URL-адреса, которые вам не нужны.

Запустите прокси-сервер разработки с файлом конфигурации и используйте приложение, чтобы узнать, как он обрабатывает ошибки. Для каждого соответствующего запроса прокси разработки определяет, следует ли имитировать ошибку или передавать запрос в Microsoft Graph с помощью настроенной частоты сбоев. При имитации ошибки прокси-сервер разработчика случайно выбирает одну из используемых Microsoft Graph ошибок и возвращает ответ об ошибке вашему приложению.

Настройка ошибок для имитации

По умолчанию имитирует GraphRandomErrorPlugin следующие ошибки.

Метод HTTP Возможные ошибки
GET 429 Too Many Requests, , 500 Internal Server Error502 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 Error502 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

Если вы хотите протестировать определенные действия, такие как регулирование, настройте подключаемый модуль только для использования соответствующих ошибок с помощью --allowed-errors параметра.

devproxy --allowed-errors 429

Кроме того, можно настроить allowedErrors свойство в объекте graphRandomErrorPlugin в файле конфигурации.

{
  "graphRandomErrorPlugin": {
    "allowedErrors": [ 429 ]
  }
}

Имитация ошибок в пакетных запросах Microsoft Graph

Прокси-сервер разработки имитирует ошибки в пакетных запросах к Microsoft Graph так же, как и для регулярных запросов. Если прокси-сервер разработки не выполняет один или несколько запросов в пакетном запросе, он возвращает 424 Failed Dependency ответ для всего пакетного запроса, подобно Microsoft Graph.