Diagnostica di Dev Proxy Toolkit

L'estensione Dev Proxy Toolkit VS Code analizza i file di configurazione del proxy di sviluppo ed evidenzia i potenziali problemi. Ogni diagnostica include un codice che si collega a questa pagina per indicazioni sulla risoluzione.

Informazioni di riferimento per i codici di diagnostica

Codice Severity Description
apiCenterPluginOrder Avvertimento Ordine di plug-in non corretto per Il Centro API
deprecatoPluginPath Errore Uso del percorso DLL del plug-in precedente
emptyUrlsToWatch Informazioni Nessun URL configurato per l'intercettazione
invalidConfigSection Avvertimento Sezione configurazione orfana
invalidConfigSectionSchema Avvertimento Mancata corrispondenza della versione dello schema della sezione config
invalidConfigValue Errore Valore non valido nella sezione config
invalidSchema Avvertimento Mancata corrispondenza della versione dello schema con il proxy di sviluppo installato
missingLanguageModel Informazioni Il plug-in può usare il modello linguistico locale per migliorare l'output
noEnabledPlugins Avvertimento Nessun plug-in abilitato
pluginConfigMissing Errore, Avviso Sezione di configurazione di riferimento mancante
pluginConfigNotRequired Errore, Avviso Sezione di configurazione non necessaria
pluginConfigRequired Errore, Avviso Il plug-in richiede la configurazione
reporterPosition Avvertimento Plug-in reporter non alla fine dell'elenco
summaryWithoutReporter Avvertimento Plug-in di riepilogo senza reporter
unknownConfigProperty Avvertimento Proprietà sconosciuta nella sezione config

apiCenterPluginOrder

Gravità: Avviso
Correzione rapida disponibile: No

OpenApiSpecGeneratorPlugin viene posizionato dopo ApiCenterOnboardingPlugin.

Motivo

OpenApiSpecGeneratorPlugin deve generare la specifica OpenAPI prima di ApiCenterOnboardingPlugin poterla usare.

Risoluzione

Posizionare OpenApiSpecGeneratorPlugin prima ApiCenterOnboardingPlugindi :

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

deprecatoPluginPath

Gravità: Errore
Correzione rapida disponibile:

pluginPath usa un formato di percorso deprecato.

Motivo

In Dev Proxy v0.29 la DLL del plug-in è stata rinominata da dev-proxy-plugins.dll a DevProxy.Plugins.dll.

Risoluzione

Aggiornare per pluginPath usare il nuovo formato. Usare la correzione rapida per l'aggiornamento automatico.

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

emptyUrlsToWatch

Gravità: Informazioni
Correzione rapida disponibile: No

La urlsToWatch matrice è vuota.

Motivo

Dev Proxy usa urlsToWatch per determinare quali richieste intercettare. Una matrice vuota indica che non verranno elaborate richieste.

Risoluzione

Aggiungere modelli url per intercettare:

{
  "$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à: Avviso
Correzione rapida disponibile: No

Esiste una sezione di configurazione, ma non vi fa riferimento alcun plug-in.

Motivo

Esiste un oggetto di primo livello che non viene usato come plug-in configSection . Questo accade spesso dopo la rimozione di un plug-in, ma dimenticando di rimuovere la configurazione.

Risoluzione

Rimuovere la sezione orfana o aggiungere un plug-in che vi faccia riferimento:

{
  "$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à: Avviso
Correzione rapida disponibile:

La proprietà della sezione config $schema non corrisponde alla versione di Dev Proxy installata.

Motivo

La sezione config fa riferimento a una versione dello schema diversa rispetto al proxy di sviluppo installato. Ciò può causare problemi di convalida o funzionalità mancanti.

Risoluzione

Aggiornare la proprietà della sezione config $schema in modo che corrisponda alla versione installata. Usare la correzione rapida (icona a forma di lampadina o Ctrl+. / Cmd+.) per aggiornare automaticamente.

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

invalidConfigValue

Gravità: Errore
Correzione rapida disponibile: No

Un valore della proprietà nella sezione config non corrisponde al tipo o ai vincoli previsti definiti nello schema.

Motivo

Il valore potrebbe essere il tipo errato ,ad esempio stringa anziché numero, all'esterno degli intervalli consentiti o non nell'elenco di opzioni valide.

Risoluzione

Controllare la documentazione dello schema per il formato del valore previsto e aggiornare di conseguenza.

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

invalidSchema

Gravità: Avviso
Correzione rapida disponibile:

La $schema proprietà non corrisponde alla versione di Dev Proxy installata.

Motivo

La configurazione fa riferimento a una versione dello schema diversa rispetto al proxy di sviluppo installato. Ciò può causare problemi di convalida o funzionalità mancanti.

Risoluzione

Aggiornare la $schema proprietà in modo che corrisponda alla versione installata. Usare la correzione rapida (icona a forma di lampadina o Ctrl+. / Cmd+.) per aggiornare automaticamente.

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

missingLanguageModel

Gravità: Informazioni
Correzione rapida disponibile:

Un plug-in può usare un modello linguistico locale, ma languageModel.enabled non trueè .

Motivo

Plug-in come OpenAIMockResponsePlugin, OpenApiSpecGeneratorPlugine TypeSpecGeneratorPlugin possono usare un modello linguistico locale per migliorare l'output. Connettendo Dev Proxy a un modello linguistico locale, è possibile sfruttare le funzionalità migliorate senza incorrere in costi aggiuntivi.

Risoluzione

Aggiungere o aggiornare la languageModel configurazione. Usare la correzione rapida per aggiungere o aggiornare languageModel.enabled: true automaticamente. Per altre informazioni, vedere Usare il modello linguistico locale con Dev Proxy.

{
  "$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à: Avviso
Correzione rapida disponibile: No

La plugins matrice è vuota o tutti i plug-in sono disabilitati.

Motivo

Dev Proxy richiede almeno un plug-in abilitato per elaborare le richieste.

Risoluzione

Aggiungere almeno un plug-in 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

Gravità: Errore (plug-in abilitato) / Avviso (plug-in disabilitato)
Correzione rapida disponibile: No

Un plug-in fa riferimento a un configSection oggetto che non esiste.

Motivo

Il plug-in ha una configSection proprietà, ma l'oggetto di configurazione corrispondente non è presente nel file.

Risoluzione

Aggiungere la sezione di configurazione mancante. Usare il nome del frammento visualizzato nel messaggio di diagnostica.

{
  "$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à: Errore (plug-in abilitato) / Avviso (plug-in disabilitato)
Correzione rapida disponibile: No

Un plug-in ha un configSection ma non supporta la configurazione.

Motivo

Non tutti i plug-in supportano la configurazione personalizzata. L'aggiunta di a configSection un plug-in che non ha bisogno di alcun effetto.

Risoluzione

Rimuovere la configSection proprietà :

{
  "$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à: Errore (plug-in abilitato) / Avviso (plug-in disabilitato)
Correzione rapida disponibile: No

Un plug-in richiede un configSection ma non è specificato alcuno.

Motivo

Alcuni plug-in richiedono la configurazione per funzionare. La definizione del plug-in non contiene la configSection proprietà .

Risoluzione

Aggiungere una configSection proprietà e creare l'oggetto di configurazione. Usare il nome del frammento visualizzato nel messaggio di diagnostica.

{
  "$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à: Avviso
Correzione rapida disponibile: No

Un plug-in reporter viene inserito prima di altri plug-in nonreporter.

Motivo

I plug-in reporter raccolgono l'output da altri plug-in. Posizionarli prima di altri plug-in significa che non acquisiscono tutti i dati.

Risoluzione

Spostare i plug-in reporter alla fine della plugins matrice:

{
  "$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à: Avviso
Correzione rapida disponibile: No

Un plug-in di riepilogo è abilitato senza un plug-in reporter.

Motivo

Plug-in come ExecutionSummaryPlugin e UrlDiscoveryPlugin generare dati che richiedono un plug-in reporter per l'output.

Risoluzione

Aggiungere un plug-in reporter dopo il plug-in di riepilogo:

{
  "$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à: Avviso
Correzione rapida disponibile:

Una sezione config contiene una proprietà non definita nel relativo schema.

Motivo

La proprietà potrebbe essere digitata in modo non digitato, da una versione diversa di Dev Proxy o non esiste per questo plug-in.

Risoluzione

Rimuovere o rinominare la proprietà sconosciuta. Usare la correzione rapida per rimuoverla automaticamente.

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