Diagnostyka zestawu narzędzi dev Proxy Toolkit

Rozszerzenie vs Code zestawu narzędzi dev Proxy Toolkit analizuje pliki konfiguracji serwera proxy deweloperów i wyróżnia potencjalne problemy. Każda diagnostyka zawiera kod, który łączy się z tą stroną w celu uzyskania wskazówek dotyczących rozwiązywania problemów.

Dokumentacja kodów diagnostycznych

Code Severity Description
apiCenterPluginOrder Ostrzeżenie Nieprawidłowa kolejność wtyczki dla centrum interfejsu API
przestarzałePluginPath Error Używanie starej ścieżki dll wtyczki
emptyUrlsToWatch Informacja Brak adresów URL skonfigurowanych do przechwytywania
invalidConfigSection Ostrzeżenie Sekcja konfiguracji oddzielonej
invalidConfigSectionSchema Ostrzeżenie Niezgodność wersji schematu sekcji konfiguracji
invalidConfigValue Error Nieprawidłowa wartość w sekcji konfiguracji
invalidSchema Ostrzeżenie Niezgodność wersji schematu z zainstalowanym serwerem proxy deweloperskim
missingLanguageModel Informacja Wtyczka może używać lokalnego modelu językowego do ulepszania danych wyjściowych
noEnabledPlugins Ostrzeżenie Nie włączono wtyczek
pluginConfigMissing Błąd/ostrzeżenie Brak sekcji konfiguracji, do których odwołuje się odwołanie
pluginConfigNotRequired Błąd/ostrzeżenie Niepotrzebna sekcja konfiguracji
pluginConfigRequired Błąd/ostrzeżenie Wtyczka wymaga konfiguracji
reporterPosition Ostrzeżenie Wtyczka reportera nie znajduje się na końcu listy
summaryWithoutReporter Ostrzeżenie Wtyczka podsumowania bez reportera
unknownConfigProperty Ostrzeżenie Nieznana właściwość w sekcji konfiguracji

apiCenterPluginOrder

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Nie

OpenApiSpecGeneratorPlugin jest umieszczany po ApiCenterOnboardingPlugin.

Przyczyna

OpenApiSpecGeneratorPlugin przed ApiCenterOnboardingPlugin użyciem specyfikacji interfejsu OpenAPI należy wygenerować specyfikację interfejsu OpenAPI.

Rezolucja

Umieść OpenApiSpecGeneratorPlugin przed :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"
  }
}

przestarzałePluginPath

Ważności: Błąd
Dostępna szybka poprawka: Tak

Element pluginPath używa przestarzałego formatu ścieżki.

Przyczyna

W programie Dev Proxy w wersji 0.29 nazwa biblioteki DLL wtyczki została zmieniona z dev-proxy-plugins.dll na DevProxy.Plugins.dll.

Rezolucja

Zaktualizuj element , pluginPath aby używał nowego formatu. Użyj szybkiej poprawki, aby automatycznie aktualizować.

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

emptyUrlsToWatch

Ważności: Informacji
Dostępna szybka poprawka: Nie

Tablica jest pusta urlsToWatch .

Przyczyna

Serwer proxy deweloperów używa urlsToWatch metodyki do określenia, które żądania mają zostać przechwycone. Pusta tablica oznacza, że żadne żądania nie zostaną przetworzone.

Rezolucja

Dodaj wzorce adresów URL w celu przechwycenia:

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Nie

Sekcja konfiguracji istnieje, ale nie odwołuje się do niej wtyczka.

Przyczyna

Obiekt najwyższego poziomu istnieje, który nie jest używany przez żadną wtyczkę configSection . Dzieje się tak często po usunięciu wtyczki, ale zapominaniu o usunięciu jej konfiguracji.

Rezolucja

Usuń sekcję oddzieloną lub dodaj wtyczkę, która się do niej odwołuje:

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Tak

Właściwość sekcji $schema konfiguracji jest niezgodna z zainstalowaną wersją serwera proxy dev.

Przyczyna

Sekcja konfiguracji odwołuje się do innej wersji schematu niż zainstalowany serwer proxy deweloperów. Może to spowodować problemy z walidacją lub brakujące funkcje.

Rezolucja

Zaktualizuj właściwość sekcji $schema konfiguracji, aby odpowiadała zainstalowanej wersji. Użyj szybkiej poprawki (ikona żarówki lub Ctrl+. / Cmd+.), aby zaktualizować ją automatycznie.

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

invalidConfigValue

Ważności: Błąd
Dostępna szybka poprawka: Nie

Wartość właściwości w sekcji konfiguracji nie jest zgodna z oczekiwanym typem ani ograniczeniami zdefiniowanymi w schemacie.

Przyczyna

Wartość może być nieprawidłowym typem (na przykład ciągiem zamiast liczby), poza dozwolonymi zakresami lub nie na liście prawidłowych opcji.

Rezolucja

Sprawdź dokumentację schematu pod kątem oczekiwanego formatu wartości i odpowiednio zaktualizuj.

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

invalidSchema

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Tak

Właściwość nie jest zgodna $schema z zainstalowaną wersją serwera proxy dev.

Przyczyna

Konfiguracja odwołuje się do innej wersji schematu niż zainstalowany serwer proxy deweloperów. Może to spowodować problemy z walidacją lub brakujące funkcje.

Rezolucja

Zaktualizuj właściwość tak $schema , aby odpowiadała zainstalowanej wersji. Użyj szybkiej poprawki (ikona żarówki lub Ctrl+. / Cmd+.), aby zaktualizować ją automatycznie.

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

missingLanguageModel

Ważności: Informacji
Dostępna szybka poprawka: Tak

Wtyczka może używać lokalnego modelu językowego, ale languageModel.enabled nie truejest .

Przyczyna

Wtyczki, takie jak OpenAIMockResponsePlugin, OpenApiSpecGeneratorPlugini TypeSpecGeneratorPlugin mogą używać lokalnego modelu językowego, aby poprawić swoje dane wyjściowe. Łącząc serwer proxy deweloperów z lokalnym modelem językowym, możesz skorzystać z ulepszonej funkcjonalności bez ponoszenia dodatkowych kosztów.

Rezolucja

Dodaj lub zaktualizuj konfigurację languageModel . Użyj szybkiej poprawki, aby automatycznie dodać lub zaktualizować languageModel.enabled: true . Aby uzyskać więcej informacji, zobacz Use local language model with Dev Proxy (Używanie lokalnego modelu językowego z serwerem proxy deweloperów).

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Nie

Tablica jest pusta plugins lub wszystkie wtyczki są wyłączone.

Przyczyna

Serwer proxy deweloperów wymaga co najmniej jednej włączonej wtyczki do przetwarzania żądań.

Rezolucja

Dodaj co najmniej jedną wtyczkę za pomocą polecenia 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

Ważności: Błąd (włączona wtyczka) / Ostrzeżenie (wyłączona wtyczka)
Dostępna szybka poprawka: Nie

Wtyczka odwołuje się do tego configSection , który nie istnieje.

Przyczyna

Wtyczka ma właściwość, configSection ale w pliku brakuje odpowiedniego obiektu konfiguracji.

Rezolucja

Dodaj brakującą sekcję konfiguracji. Użyj nazwy fragmentu kodu wyświetlanej w komunikacie diagnostycznym.

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

Ważności: Błąd (włączona wtyczka) / Ostrzeżenie (wyłączona wtyczka)
Dostępna szybka poprawka: Nie

Wtyczka ma element configSection , ale nie obsługuje konfiguracji.

Przyczyna

Nie wszystkie wtyczki obsługują konfigurację niestandardową. Dodanie elementu configSection do wtyczki, która nie wymaga żadnego efektu.

Rezolucja

configSection Usuń właściwość:

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

Ważności: Błąd (włączona wtyczka) / Ostrzeżenie (wyłączona wtyczka)
Dostępna szybka poprawka: Nie

Wtyczka wymaga elementu , configSection ale nie jest określona.

Przyczyna

Niektóre wtyczki wymagają konfiguracji do działania. Brak definicji configSection wtyczki.

Rezolucja

configSection Dodaj właściwość i utwórz obiekt konfiguracji. Użyj nazwy fragmentu kodu wyświetlanej w komunikacie diagnostycznym.

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Nie

Wtyczka reportera jest umieszczana przed innymi wtyczkami nieraporterowymi.

Przyczyna

Wtyczki reportera zbierają dane wyjściowe z innych wtyczek. Umieszczenie ich przed innymi wtyczkami oznacza, że nie będą przechwytywane wszystkie dane.

Rezolucja

Przenieś wtyczki reportera na koniec plugins tablicy:

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Nie

Wtyczka podsumowania jest włączona bez wtyczki reportera.

Przyczyna

Wtyczki, takie jak ExecutionSummaryPlugin i UrlDiscoveryPlugin generują dane, które wymagają wtyczki reportera do danych wyjściowych.

Rezolucja

Dodaj wtyczkę reportera po wtyczce podsumowania:

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

Ważności: Ostrzeżenie
Dostępna szybka poprawka: Tak

Sekcja konfiguracji zawiera właściwość, która nie jest zdefiniowana w schemacie.

Przyczyna

Właściwość może być błędniepelowana, z innej wersji serwera proxy deweloperskiego lub nie istnieje dla tej wtyczki.

Rezolucja

Usuń lub zmień nazwę nieznanej właściwości. Użyj szybkiej poprawki, aby usunąć ją automatycznie.

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