Диагностика набора средств прокси-сервера разработки

Расширение VS Code набора средств разработки для прокси-сервера анализирует файлы конфигурации прокси-сервера разработки и выделяет потенциальные проблемы. Каждая диагностика содержит код, который ссылается на эту страницу для руководства по разрешению.

Справочник по кодам диагностики

Code Severity Description
apiCenterPluginOrder Предупреждение Неправильный порядок подключаемых модулей для Центра API
deprecatedPluginPath Ошибка Использование старого пути dll подключаемого модуля
emptyUrlsToWatch Информация Url-адреса не настроены для перехвата
invalidConfigSection Предупреждение Раздел конфигурации "Потерянный"
invalidConfigSectionSchema Предупреждение Несоответствие версии схемы раздела конфигурации
invalidConfigValue Ошибка Недопустимое значение в разделе конфигурации
invalidSchema Предупреждение Несоответствие версии схемы с установленным прокси-сервером разработки
missingLanguageModel Информация Подключаемый модуль может использовать локальную языковую модель для улучшения выходных данных
noEnabledPlugins Предупреждение Подключаемые модули не включены
pluginConfigMissing Ошибка или предупреждение Отсутствует раздел конфигурации со ссылкой
pluginConfigNotRequired Ошибка или предупреждение Ненужный раздел конфигурации
pluginConfigRequired Ошибка или предупреждение Для подключаемого модуля требуется конфигурация
репортерпозиция Предупреждение Подключаемый модуль "Репортер" не в конце списка
summaryWithoutReporter Предупреждение Сводный подключаемый модуль без репортера
unknownConfigProperty Предупреждение Неизвестное свойство в разделе конфигурации

apiCenterPluginOrder

Тяжести: Предупреждение
Доступно быстрое исправление: Нет

OpenApiSpecGeneratorPlugin помещается после ApiCenterOnboardingPlugin.

Причина

OpenApiSpecGeneratorPlugin прежде чем ApiCenterOnboardingPlugin использовать его, необходимо создать спецификацию OpenAPI.

Резолюция

Место OpenApiSpecGeneratorPlugin до ApiCenterOnboardingPlugin:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenApiSpecGeneratorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    },
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterOnboardingPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "apiCenterOnboardingPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/apicenteronboardingplugin.schema.json",
    "subscriptionId": "your-subscription-id",
    "resourceGroupName": "your-resource-group",
    "serviceName": "your-api-center",
    "workspaceName": "default"
  }
}

deprecatedPluginPath

Тяжести: Ошибка
Доступно быстрое исправление: Да

Использует pluginPath устаревший формат пути.

Причина

В Прокси-сервере разработки версии 0.29 подключаемый модуль DLL был переименован в dev-proxy-plugins.dllDevProxy.Plugins.dll.

Резолюция

pluginPath Обновите новый формат. Используйте быстрое исправление для автоматического обновления.

{
  "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}

emptyUrlsToWatch

Тяжести: Информация
Доступно быстрое исправление: Нет

Массив urlsToWatch пуст.

Причина

Прокси-сервер разработки используется urlsToWatch для определения запросов для перехвата. Пустой массив означает, что запросы не будут обрабатываться.

Резолюция

Добавление шаблонов URL-адресов для перехвата:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mockResponsePlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*",
    "https://graph.microsoft.com/v1.0/*"
  ],
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  }
}

invalidConfigSection

Тяжести: Предупреждение
Доступно быстрое исправление: Нет

Раздел конфигурации существует, но подключаемый модуль не ссылается на него.

Причина

Объект верхнего уровня существует, который не используется в качестве подключаемого configSection модуля. Это часто происходит после удаления подключаемого модуля, но забывая удалить ее конфигурацию.

Резолюция

Удалите потерянный раздел или добавьте подключаемый модуль, ссылающийся на него:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "genericRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "genericRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.schema.json",
    "rate": 50
  }
}

invalidConfigSectionSchema

Тяжести: Предупреждение
Доступно быстрое исправление: Да

Свойство раздела $schema конфигурации не соответствует установленной версии прокси-сервера разработки.

Причина

Раздел конфигурации ссылается на другую версию схемы, отличную от установленного прокси-сервера разработки. Это может привести к возникновению проблем с проверкой или отсутствием функций.

Резолюция

Обновите свойство раздела $schema конфигурации, чтобы соответствовать установленной версии. Используйте быстрое исправление (значок лампочки или Ctrl+. / Cmd+.) для автоматического обновления.

{
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  }
}

invalidConfigValue

Тяжести: Ошибка
Доступно быстрое исправление: Нет

Значение свойства в разделе конфигурации не соответствует ожидаемому типу или ограничениям, определенным в схеме.

Причина

Значение может быть неправильным типом (например, строка вместо числа), внешними допустимыми диапазонами или нет в списке допустимых параметров.

Резолюция

Проверьте документацию по схеме для ожидаемого формата значений и обновите их соответствующим образом.

{
  "genericRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.schema.json",
    "rate": 50
  }
}

invalidSchema

Тяжести: Предупреждение
Доступно быстрое исправление: Да

Свойство $schema не соответствует установленной версии прокси-сервера разработки.

Причина

Конфигурация ссылается на другую версию схемы, отличную от установленного прокси-сервера разработки. Это может привести к возникновению проблем с проверкой или отсутствием функций.

Резолюция

$schema Обновите свойство, чтобы соответствовать установленной версии. Используйте быстрое исправление (значок лампочки или Ctrl+. / Cmd+.) для автоматического обновления.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json"
}

missingLanguageModel

Тяжести: Информация
Доступно быстрое исправление: Да

Подключаемый модуль может использовать локальную языковую модель, но languageModel.enabled не trueявляется.

Причина

Например, OpenApiSpecGeneratorPluginподключаемые модули и TypeSpecGeneratorPlugin могут использовать локальную языковую модель для улучшения выходных OpenAIMockResponsePluginданных. Подключив прокси-сервер разработки к локальной языковой модели, вы можете воспользоваться улучшенными функциями без дополнительных затрат.

Резолюция

Добавьте или обновите конфигурацию languageModel . Используйте быстрое исправление для автоматического добавления или обновления languageModel.enabled: true . Дополнительные сведения см. в разделе "Использование локальной языковой модели с помощью прокси-сервера разработки".

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "openAIMockResponsePlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.openai.com/*"
  ],
  "languageModel": {
    "enabled": true
  },
  "openAIMockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/openaimockresponseplugin.schema.json"
  }
}

noEnabledPlugins

Тяжести: Предупреждение
Доступно быстрое исправление: Нет

Массив plugins пуст или все подключаемые модули отключены.

Причина

Для обработки запросов на прокси-сервер разработки требуется по крайней мере один включенный подключаемый модуль.

Резолюция

Добавьте по крайней мере один подключаемый модуль с помощью enabled: true:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mockResponsePlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  }
}

pluginConfigMissing

Тяжести: Ошибка (включенный подключаемый модуль) / Предупреждение (отключенный подключаемый модуль)
Доступно быстрое исправление: Нет

Подключаемый модуль ссылается на configSection не существует.

Причина

Подключаемый модуль имеет свойство, но соответствующий configSection объект конфигурации отсутствует в файле.

Резолюция

Добавьте отсутствующий раздел конфигурации. Используйте имя фрагмента кода, показанное в диагностическом сообщении.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mockResponsePlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  }
}

pluginConfigNotRequired

Тяжести: Ошибка (включенный подключаемый модуль) / Предупреждение (отключенный подключаемый модуль)
Доступно быстрое исправление: Нет

Подключаемый модуль имеет конфигурацию configSection , но не поддерживает конфигурацию.

Причина

Не все подключаемые модули поддерживают настраиваемую конфигурацию. configSection Добавление подключаемого модуля, который не требует никакого эффекта.

Резолюция

configSection Удалите свойство:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "RetryAfterPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ]
}

pluginConfigRequired

Тяжести: Ошибка (включенный подключаемый модуль) / Предупреждение (отключенный подключаемый модуль)
Доступно быстрое исправление: Нет

Для подключаемого configSection модуля требуется, но нет.

Причина

Для некоторых подключаемых модулей требуется конфигурация. Определение подключаемого configSection модуля отсутствует.

Резолюция

configSection Добавьте свойство и создайте объект конфигурации. Используйте имя фрагмента кода, показанное в диагностическом сообщении.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "genericRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "genericRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.schema.json",
    "errorsFile": "errors.json",
    "rate": 50
  }
}

репортерпозиция

Тяжести: Предупреждение
Доступно быстрое исправление: Нет

Подключаемый модуль репортера помещается перед другими неотрепортированными подключаемыми модулями.

Причина

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

Резолюция

Перемещение подключаемых модулей репортера в конец массива plugins :

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mockResponsePlugin"
    },
    {
      "name": "LatencyPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "latencyPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ],
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  },
  "latencyPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/latencyplugin.schema.json",
    "minMs": 200,
    "maxMs": 10000
  }
}

summaryWithoutReporter

Тяжести: Предупреждение
Доступно быстрое исправление: Нет

Подключаемый модуль сводки включен без подключаемого модуля репортера.

Причина

Подключаемые модули, такие как ExecutionSummaryPlugin и UrlDiscoveryPlugin создание данных, требующих вывода подключаемого модуля репортера.

Резолюция

Добавьте подключаемый модуль репортера после сводного подключаемого модуля:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "ExecutionSummaryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.example.com/*"
  ]
}

unknownConfigProperty

Тяжести: Предупреждение
Доступно быстрое исправление: Да

Раздел конфигурации содержит свойство, которое не определено в схеме.

Причина

Это свойство может быть пропущено из другой версии прокси-сервера разработки или не существует для этого подключаемого модуля.

Резолюция

Удалите или переименуйте неизвестное свойство. Чтобы удалить его автоматически, используйте быстрое исправление.

{
  "mockResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
    "mocksFile": "mocks.json"
  }
}