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

На первый взгляд
Цель: Проверка того, как приложение обрабатывает ошибки API Microsoft Graph
Время: 10 минут
Подключаемые модули:GraphRandomErrorPlugin
Предварительные требования:настройка прокси-сервера разработки

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

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

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

Файл: 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/*"
      ]
    }
  ]
}

Совет

Приведенный выше фрагмент прослушивает запросы к 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 в файле конфигурации.

Файл: devproxyrc.json

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

В Dev Proxy используются только разрешенные ошибки, которые применяются к каждому методу HTTP, как указано в предыдущей таблице. Если ни одна из разрешенных ошибок не применяется к методу, прокси-сервер разработки передает запросы с этим методом в Microsoft Graph. Например, если разрешено только 507, Dev Proxy отклоняет запросы POST, PUT и DELETE, но пропускает запросы PATCH и GET. Прокси-сервер разработки также передает запросы с методами, которые не перечислены в таблице, например HEAD или OPTIONS.

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

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

Если любой запрос в пакете использует метод, для которого ни одна из разрешенных ошибок не применяется, Dev Proxy передает весь пакет через Microsoft Graph, так как пакетный ответ должен содержать ответ для каждого запроса в пакете.

См. также