Diagnósticos del Kit de herramientas de proxy de desarrollo

La extensión vs Code del kit de herramientas de proxy de desarrollo analiza los archivos de configuración del proxy de desarrollo y resalta los posibles problemas. Cada diagnóstico tiene un código que se vincula a esta página para obtener instrucciones de resolución.

Referencia de códigos de diagnóstico

Código Severity Description
apiCenterPluginOrder Advertencia Orden de complementos incorrecto para el Centro de API
deprecatedPluginPath Error Uso de la ruta de acceso dll del complemento anterior
emptyUrlsToWatch Información No hay direcciones URL configuradas para interceptar
invalidConfigSection Advertencia Sección de configuración huérfana
invalidConfigSectionSchema Advertencia Error de coincidencia de la versión del esquema de la sección de configuración
invalidConfigValue Error Valor no válido en la sección config
invalidSchema Advertencia Error de coincidencia de la versión del esquema con el proxy de desarrollo instalado
missingLanguageModel Información El complemento puede usar el modelo de lenguaje local para mejorar la salida
noEnabledPlugins Advertencia No hay complementos habilitados
pluginConfigMissing Error o advertencia Falta la sección de configuración a la que se hace referencia
pluginConfigNotRequired Error o advertencia Sección de configuración innecesaria
pluginConfigRequired Error o advertencia El complemento requiere configuración
reporterPosition Advertencia Complemento de reportera que no está al final de la lista
summaryWithoutReporter Advertencia Complemento de resumen sin reportera
unknownConfigProperty Advertencia Propiedad desconocida en la sección config

apiCenterPluginOrder

Gravedad: Advertencia
Corrección rápida disponible: No

OpenApiSpecGeneratorPlugin se coloca después ApiCenterOnboardingPluginde .

Causa

OpenApiSpecGeneratorPlugin debe generar la especificación openAPI antes de ApiCenterOnboardingPlugin poder usarla.

Resolución

Coloque OpenApiSpecGeneratorPlugin antes de 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

Gravedad: Error
Corrección rápida disponible:

pluginPath usa un formato de ruta de acceso en desuso.

Causa

En Dev Proxy v0.29, el archivo DLL del complemento se cambió de dev-proxy-plugins.dll a DevProxy.Plugins.dll.

Resolución

Actualice para pluginPath usar el nuevo formato. Use la corrección rápida para actualizarse automáticamente.

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

emptyUrlsToWatch

Gravedad: Información
Corrección rápida disponible: No

La urlsToWatch matriz está vacía.

Causa

Dev Proxy usa urlsToWatch para determinar qué solicitudes se van a interceptar. Una matriz vacía significa que no se procesarán solicitudes.

Resolución

Agregue patrones de dirección URL para interceptar:

{
  "$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

Gravedad: Advertencia
Corrección rápida disponible: No

Existe una sección de configuración, pero no hay ningún complemento al que haga referencia.

Causa

Existe un objeto de nivel superior que no se usa como un configSection complemento. Esto suele ocurrir después de quitar un complemento, pero olvidarse de quitar su configuración.

Resolución

Quite la sección huérfana o agregue un complemento que haga referencia a él:

{
  "$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

Gravedad: Advertencia
Corrección rápida disponible:

La propiedad de la $schema sección config no coincide con la versión instalada del proxy de desarrollo.

Causa

La sección de configuración hace referencia a una versión de esquema diferente a la del proxy de desarrollo instalado. Esto puede provocar problemas de validación o características que faltan.

Resolución

Actualice la propiedad de $schema la sección de configuración para que coincida con la versión instalada. Use la corrección rápida (icono de bombilla o Ctrl+. / Cmd+.) para actualizarse automáticamente.

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

invalidConfigValue

Gravedad: Error
Corrección rápida disponible: No

Un valor de propiedad de la sección config no coincide con el tipo esperado ni las restricciones definidas en el esquema.

Causa

El valor puede ser el tipo incorrecto (por ejemplo, cadena en lugar de número), fuera de los intervalos permitidos o no en la lista de opciones válidas.

Resolución

Compruebe la documentación del esquema para conocer el formato de valor esperado y actualice en consecuencia.

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

invalidSchema

Gravedad: Advertencia
Corrección rápida disponible:

La $schema propiedad no coincide con la versión instalada del proxy de desarrollo.

Causa

La configuración hace referencia a una versión de esquema diferente a la del proxy de desarrollo instalado. Esto puede provocar problemas de validación o características que faltan.

Resolución

Actualice la propiedad para que coincida con la $schema versión instalada. Use la corrección rápida (icono de bombilla o Ctrl+. / Cmd+.) para actualizarse automáticamente.

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

missingLanguageModel

Gravedad: Información
Corrección rápida disponible:

Un complemento puede usar un modelo de lenguaje local, pero languageModel.enabled no truees .

Causa

Los complementos como OpenAIMockResponsePlugin, OpenApiSpecGeneratorPluginy TypeSpecGeneratorPlugin pueden usar un modelo de lenguaje local para mejorar su salida. Al conectar el proxy de desarrollo a un modelo de lenguaje local, puede beneficiarse de la funcionalidad mejorada sin incurrir en costos adicionales.

Resolución

Agregue o actualice la languageModel configuración. Use la corrección rápida para agregar o actualizar languageModel.enabled: true automáticamente. Para obtener más información, consulte Uso del modelo de lenguaje local con proxy de desarrollo.

{
  "$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

Gravedad: Advertencia
Corrección rápida disponible: No

La plugins matriz está vacía o todos los complementos están deshabilitados.

Causa

El proxy de desarrollo requiere al menos un complemento habilitado para procesar solicitudes.

Resolución

Agregue al menos un complemento con 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

Gravedad: Error (complemento habilitado) / Advertencia (complemento deshabilitado)
Corrección rápida disponible: No

Un complemento hace referencia a un configSection que no existe.

Causa

El complemento tiene una configSection propiedad, pero falta el objeto de configuración correspondiente del archivo.

Resolución

Agregue la sección de configuración que falta. Use el nombre del fragmento de código que se muestra en el mensaje de diagnóstico.

{
  "$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

Gravedad: Error (complemento habilitado) / Advertencia (complemento deshabilitado)
Corrección rápida disponible: No

Un complemento tiene un configSection pero no admite la configuración.

Causa

No todos los complementos admiten la configuración personalizada. Agregar un elemento configSection a un complemento que no necesita uno no tiene ningún efecto.

Resolución

Quite la configSection propiedad :

{
  "$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

Gravedad: Error (complemento habilitado) / Advertencia (complemento deshabilitado)
Corrección rápida disponible: No

Un complemento requiere un configSection pero no se especifica ninguno.

Causa

Algunos complementos requieren la configuración para funcionar. Falta la definición del complemento.configSection

Resolución

Agregue una configSection propiedad y cree el objeto de configuración. Use el nombre del fragmento de código que se muestra en el mensaje de diagnóstico.

{
  "$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
  }
}

reporterPosition

Gravedad: Advertencia
Corrección rápida disponible: No

Un complemento de reportera se coloca antes de otros complementos que no son de informe.

Causa

Los complementos de reportera recopilan la salida de otros complementos. Colocarlos antes de otros complementos significa que no capturarán todos los datos.

Resolución

Mueva los complementos de reportera al final de la plugins matriz:

{
  "$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

Gravedad: Advertencia
Corrección rápida disponible: No

Un complemento de resumen está habilitado sin un complemento de reportera.

Causa

Los complementos como ExecutionSummaryPlugin y UrlDiscoveryPlugin generan datos que requieren que se genere un complemento de reportera.

Resolución

Agregue un complemento de reportera después del complemento de resumen:

{
  "$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

Gravedad: Advertencia
Corrección rápida disponible:

Una sección de configuración contiene una propiedad que no está definida en su esquema.

Causa

La propiedad puede estar mal escrita, desde otra versión del proxy de desarrollo o no existe para este complemento.

Resolución

Quite o cambie el nombre de la propiedad desconocida. Use la corrección rápida para quitarla automáticamente.

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