Diagnostics du Kit de ressources proxy de développement

L’extension VS Code dev Proxy Toolkit analyse vos fichiers de configuration du proxy de développement et met en évidence les problèmes potentiels. Chaque diagnostic a un code qui est lié à cette page pour obtenir des conseils de résolution.

Informations de référence sur les codes de diagnostic

Code Niveau de gravité Descriptif
apiCenterPluginOrder Avertissement Ordre de plug-in incorrect pour le Centre d’API
dépréciéPluginPath Erreur Utilisation de l’ancien chemin d’accès à la DLL du plug-in
emptyUrlsToWatch Informations Aucune URL configurée pour intercepter
invalidConfigSection Avertissement Section de configuration orpheline
invalidConfigSectionSchema Avertissement Incompatibilité de version du schéma de section de configuration
invalidConfigValue Erreur Valeur non valide dans la section config
invalidSchema Avertissement Incompatibilité de version de schéma avec le proxy de développement installé
missingLanguageModel Informations Le plug-in peut utiliser le modèle de langage local pour améliorer la sortie
noEnabledPlugins Avertissement Aucun plug-in n’est activé
pluginConfigMissing Erreur/avertissement Section de configuration référencée manquante
pluginConfigNotRequired Erreur/avertissement Section de configuration inutile
pluginConfigRequired Erreur/avertissement Le plug-in nécessite une configuration
reporterPosition Avertissement Plug-in Reporter non à la fin de la liste
summaryWithoutReporter Avertissement Plug-in de synthèse sans reporter
unknownConfigProperty Avertissement Propriété inconnue dans la section config

apiCenterPluginOrder

Gravité: Avertissement
Correctif rapide disponible : Non

OpenApiSpecGeneratorPlugin est placé après ApiCenterOnboardingPlugin.

La cause

OpenApiSpecGeneratorPlugin doit générer la spécification OpenAPI avant ApiCenterOnboardingPlugin de pouvoir l’utiliser.

Résolution

Place OpenApiSpecGeneratorPlugin avant 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"
  }
}

dépréciéPluginPath

Gravité: Erreur
Correctif rapide disponible : Oui

Utilise pluginPath un format de chemin déconseillé.

La cause

Dans Dev Proxy v0.29, la DLL du dev-proxy-plugins.dll plug-in a été renommée en DevProxy.Plugins.dll.

Résolution

Mettez à jour le pluginPath format pour utiliser le nouveau format. Utilisez le correctif rapide pour mettre à jour automatiquement.

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

emptyUrlsToWatch

Gravité: Informations
Correctif rapide disponible : Non

Le urlsToWatch tableau est vide.

La cause

Le proxy de développement utilise urlsToWatch pour déterminer les requêtes à intercepter. Un tableau vide signifie qu’aucune demande n’est traitée.

Résolution

Ajoutez des modèles d’URL pour intercepter :

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

Gravité: Avertissement
Correctif rapide disponible : Non

Une section de configuration existe, mais aucun plug-in ne le référence.

La cause

Un objet de niveau supérieur n’est pas utilisé comme configSection un plug-in. Cela se produit souvent après la suppression d’un plug-in, mais l’oubli de supprimer sa configuration.

Résolution

Supprimez la section orpheline ou ajoutez un plug-in qui le référence :

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

Gravité: Avertissement
Correctif rapide disponible : Oui

La propriété de la $schema section config ne correspond pas à la version installée du proxy de développement.

La cause

Votre section de configuration fait référence à une version de schéma différente de celle de votre proxy de développement installé. Cela peut entraîner des problèmes de validation ou des fonctionnalités manquantes.

Résolution

Mettez à jour la propriété de la $schema section de configuration pour qu’elle corresponde à votre version installée. Utilisez le correctif rapide (icône d’ampoule ou Ctrl+. / Cmd+.) pour effectuer une mise à jour automatique.

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

invalidConfigValue

Gravité: Erreur
Correctif rapide disponible : Non

Une valeur de propriété dans la section de configuration ne correspond pas au type ou aux contraintes attendus définis dans le schéma.

La cause

La valeur peut être le type incorrect (par exemple, chaîne au lieu de nombre), en dehors des plages autorisées ou non dans la liste des options valides.

Résolution

Consultez la documentation du schéma pour le format de valeur attendu et mettez à jour en conséquence.

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

invalidSchema

Gravité: Avertissement
Correctif rapide disponible : Oui

La $schema propriété ne correspond pas à la version installée du proxy de développement.

La cause

Votre configuration fait référence à une version de schéma différente de celle de votre proxy de développement installé. Cela peut entraîner des problèmes de validation ou des fonctionnalités manquantes.

Résolution

Mettez à jour la propriété pour qu’elle $schema corresponde à votre version installée. Utilisez le correctif rapide (icône d’ampoule ou Ctrl+. / Cmd+.) pour effectuer une mise à jour automatique.

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

missingLanguageModel

Gravité: Informations
Correctif rapide disponible : Oui

Un plug-in peut utiliser un modèle de langage local, mais languageModel.enabled ce n’est pas le cas true.

La cause

Les plug-ins tels que OpenAIMockResponsePlugin, OpenApiSpecGeneratorPluginet TypeSpecGeneratorPlugin peuvent utiliser un modèle de langage local pour améliorer leur sortie. En connectant le proxy de développement à un modèle de langage local, vous pouvez bénéficier des fonctionnalités améliorées sans entraîner de coûts supplémentaires.

Résolution

Ajoutez ou mettez à jour la languageModel configuration. Utilisez le correctif rapide pour ajouter ou mettre à jour languageModel.enabled: true automatiquement. Pour plus d’informations, consultez Utiliser le modèle de langage local avec le proxy de développement.

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

Gravité: Avertissement
Correctif rapide disponible : Non

Le plugins tableau est vide ou tous les plug-ins sont désactivés.

La cause

Le proxy de développement nécessite au moins un plug-in activé pour traiter les demandes.

Résolution

Ajoutez au moins un plug-in avec 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

Gravité: Erreur (plug-in activé) / Avertissement (plug-in désactivé)
Correctif rapide disponible : Non

Un plug-in fait référence à un configSection plug-in qui n’existe pas.

La cause

Le plug-in a une configSection propriété, mais l’objet de configuration correspondant est manquant dans le fichier.

Résolution

Ajoutez la section de configuration manquante. Utilisez le nom de l’extrait de code indiqué dans le message de diagnostic.

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

Gravité: Erreur (plug-in activé) / Avertissement (plug-in désactivé)
Correctif rapide disponible : Non

Un plug-in a une configSection configuration, mais ne prend pas en charge la configuration.

La cause

Tous les plug-ins ne prennent pas en charge la configuration personnalisée. L’ajout d’un configSection plug-in qui n’a pas besoin d’un plug-in n’a aucun effet.

Résolution

Supprimez la configSection propriété :

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

Gravité: Erreur (plug-in activé) / Avertissement (plug-in désactivé)
Correctif rapide disponible : Non

Un plug-in nécessite un configSection plug-in, mais aucun n’est spécifié.

La cause

Certains plug-ins nécessitent une configuration pour fonctionner. La définition du plug-in est manquante.configSection

Résolution

Ajoutez une configSection propriété et créez l’objet de configuration. Utilisez le nom de l’extrait de code indiqué dans le message de diagnostic.

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

Gravité: Avertissement
Correctif rapide disponible : Non

Un plug-in reporter est placé avant d’autres plug-ins non reporter.

La cause

Les plug-ins reporter collectent la sortie d’autres plug-ins. Les placer avant d’autres plug-ins signifie qu’ils ne capturent pas toutes les données.

Résolution

Déplacez les plug-ins reporters à la fin du plugins tableau :

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

Gravité: Avertissement
Correctif rapide disponible : Non

Un plug-in de synthèse est activé sans plug-in reporter.

La cause

Les plug-ins aiment ExecutionSummaryPlugin et UrlDiscoveryPlugin génèrent des données qui nécessitent un plug-in reporter pour la sortie.

Résolution

Ajoutez un plug-in reporter après le plug-in de synthèse :

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

Gravité: Avertissement
Correctif rapide disponible : Oui

Une section de configuration contient une propriété qui n’est pas définie dans son schéma.

La cause

La propriété peut être mal orthographié, d’une autre version du proxy de développement ou n’existe pas pour ce plug-in.

Résolution

Supprimez ou renommez la propriété inconnue. Utilisez le correctif rapide pour le supprimer automatiquement.

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