Dela via


Plugin-arkitektur

Ett plugin-program är en .NET-klass registrerad med Dev Proxy som introducerar ett specifikt Dev Proxy-beteende. Ett plugin-program kan ge vägledning i realtid om API-användning, simulera API-beteende, analysera flera API-begäranden eller skapa en rapport. Dev Proxy har tre typer av plugin-program:

  • avlyssning av plugin-program som fångar upp begäranden och svar och kan analysera och ändra dem
  • rapportering av plugin-program som körs på begäranden registreras av Dev Proxy
  • reportrar som genererar rapporter baserat på data som samlas in av rapportinsticksprogram

Du registrerar plugin-program i devproxyrc.json-filen. Filen innehåller en lista över plugin-program som ska läsas in och deras konfiguration.

Dev Proxy levereras med en samling plugin-program och du kan skapa anpassade plugin-program för att utöka Dev Proxy-funktionerna så att de passar dina behov.

När Dev Proxy startar läser den in plugin-program som är aktiverade i konfigurationsfilen. Beroende på vilka plugin-program du aktiverar kan Dev Proxy ge vägledning, simulera API-beteende eller analysera API-begäranden. I följande avsnitt förklaras hur de olika typerna av plugin-program fungerar.

Fånga upp plugin-program

När Dev Proxy fångar upp en begäran som matchar en av URL:erna i den urlsToWatch matrisen anropas varje plugin-program som fångas upp i den ordning de anges i konfigurationsfilen. Varje plugin-program för avlyssning ärver från klassen BaseProxyPlugin och kan prenumerera på följande händelser:

  • BeforeRequest – utlöses när Dev Proxy fångar upp en begäran
  • BeforeResponse – upphöjt efter att Dev Proxy fått ett svar från servern
  • AfterResponse – upphöjt efter att Dev Proxy skickar svaret till klienten

För var och en av dessa händelser kan plugin-program definiera en händelsehanterare. I hanteraren kan plugin-programmet analysera begäran och svaret och ändra det om det behövs. Den kan också mata ut vägledningsmeddelanden. Mer information om vad som är möjligt finns i kod för plugin-program som tillhandahålls med Dev Proxy.

Rapportering av plugin-program

Med Dev Proxy kan du registrera API-begäranden och svar. Du använder vanligtvis inspelning för att rapportera om API-användning eller analysera flera API-begäranden. Rapportering av plugin-program ärver från klassen BaseReportingPlugin och registrerar en händelsehanterare med händelsen AfterRecordingStop.

När du slutar spela in genererar Dev Proxy händelsen AfterRecordingStop och skickar listan över inspelade begäranden och svar som ett argument till de registrerade händelsehanterarna. Rapportinsticksprogram kan sedan analysera inspelade data och generera ett rapportobjekt. Ett rapportobjekt är ett godtyckligt objekt som definieras av plugin-programmet för rapportering. Rapportinsticksprogram lagrar rapporterna genom att anropa metoden StoreReport.

Viktig

Rapportinsticksprogram genererar rapportobjekt som Dev Proxy lagrar i minnet. Om du vill konvertera dessa rapportobjekt till användarläsbara rapporter måste du aktivera en eller flera reportrar i dev proxy-konfigurationsfilen.

Reportrar

Dev Proxy använder reportrar för att konvertera rapportobjekt som genereras av rapportering av plugin-program till användarläsbara rapporter. Till exempel konverterar MarkdownReporter ett rapportobjekt till en Markdown-fil. Reportrar är särskilda plugin-program som ärver från klassen BaseReporter. De implementerar metoden GetReport, som tar som argument en rapport som skapats av ett rapport-plugin-program och konverterar den till en sträng. Den här strängen sparas sedan på disken enligt PluginName_ReporterName.ReporterExtension mönster, till exempel: ApiCenterOnboardingPlugin_MarkdownReporter.md.

Viktig

Eftersom reportrar är beroende av de rapportobjekt som genereras av rapport-plugin-program måste du aktivera plugin-program för rapportering i Dev Proxy-konfigurationsfilen efter rapportering av plugin-program. Om du aktiverar dem innan du rapporterar plugin-program har reportrar inga data att rapportera om.