Delen via


Architectuur van invoegtoepassingen

Een invoegtoepassing is een .NET-klasse die is geregistreerd bij Dev Proxy waarmee een specifiek gedrag van de dev-proxy wordt geïntroduceerd. Een invoegtoepassing kan realtime richtlijnen bieden over API-gebruik, API-gedrag simuleren, meerdere API-aanvragen analyseren of een rapport produceren. Dev Proxy heeft drie typen invoegtoepassingen:

  • invoegtoepassingen onderscheppen die aanvragen en antwoorden onderscheppen en deze kunnen analyseren en wijzigen
  • rapportageinvoegtoepassingen die worden uitgevoerd op aanvragen vastgelegd door Dev Proxy
  • reporters die rapporten genereren op basis van de gegevens die zijn verzameld door rapportageinvoegtoepassingen

U registreert invoegtoepassingen in het devproxyrc.json-bestand. Het bestand bevat een lijst met invoegtoepassingen om te laden en hun configuratie.

Dev Proxy wordt geleverd met een verzameling invoegtoepassingen en u kunt aangepaste invoegtoepassingen maken om de functionaliteit van Dev Proxy aan uw behoeften uit te breiden.

Wanneer Dev Proxy wordt gestart, worden invoegtoepassingen geladen die zijn ingeschakeld in het configuratiebestand. Afhankelijk van welke invoegtoepassingen u inschakelt, kan Dev Proxy richtlijnen bieden, API-gedrag simuleren of API-aanvragen analyseren. In de volgende secties wordt uitgelegd hoe de verschillende typen invoegtoepassingen werken.

Invoegtoepassingen onderscheppen

Wanneer Dev Proxy een aanvraag onderschept die overeenkomt met een van de URL's in de urlsToWatch matrix, wordt elke onderscheppingsinvoegtoepassing aangeroepen in de volgorde waarin deze worden vermeld in het configuratiebestand. Elke onderscheppingsinvoegtoepassing neemt de BaseProxyPlugin klasse over en kan zich abonneren op de volgende gebeurtenissen:

  • BeforeRequest- gegenereerd wanneer Dev Proxy een aanvraag onderschept
  • BeforeResponse- gegenereerd nadat dev proxy een antwoord van de server ontvangt
  • AfterResponse - gegenereerd nadat Dev Proxy het antwoord naar de client verzendt

Voor elk van deze gebeurtenissen kunnen invoegtoepassingen een gebeurtenis-handler definiëren. In de handler kan de invoegtoepassing de aanvraag en het antwoord analyseren en indien nodig wijzigen. Het kan ook richtlijnenberichten uitvoeren. Zie de code van invoegtoepassingen die zijn geleverd met Dev Proxyom te zien wat er mogelijk is.

Rapportage-invoegtoepassingen

Met Dev Proxy kunt u API-aanvragen en -antwoorden vastleggen. Doorgaans gebruikt u opname om te rapporteren over API-gebruik of om meerdere API-aanvragen te analyseren. Rapportage-invoegtoepassingen nemen over van de BaseReportingPlugin-klasse en registreren een gebeurtenis-handler bij de AfterRecordingStop gebeurtenis.

Wanneer u stopt met opnemen, genereert Dev Proxy de AfterRecordingStop gebeurtenis, waarbij de lijst met geregistreerde aanvragen en antwoorden wordt doorgegeven als argument voor de geregistreerde gebeurtenis-handlers. Rapportageinvoegtoepassingen kunnen vervolgens de opgenomen gegevens analyseren en een rapportobject genereren. Een rapportobject is een willekeurig object dat is gedefinieerd door de rapportageinvoegtoepassing. Rapportinvoegtoepassingen slaan de rapporten op door de methode StoreReport aan te roepen.

Belangrijk

Rapportage-invoegtoepassingen genereren rapportobjecten die in het geheugen worden opgeslagen in Dev Proxy. Als u deze rapportobjecten wilt converteren naar door de gebruiker leesbare rapporten, moet u een of meer reporters inschakelen in het configuratiebestand dev proxy.

Verslaggevers

Dev Proxy maakt gebruik van reporters om rapportobjecten te converteren die worden gegenereerd door rapportinvoegtoepassingen in door de gebruiker leesbare rapporten. De MarkdownReporter converteert bijvoorbeeld een rapportobject naar een Markdown-bestand. Reporters zijn speciale invoegtoepassingen die overnemen van de BaseReporter-klasse. Ze implementeren de GetReport methode, die als argument wordt gebruikt voor een rapport dat is gemaakt door een rapportage-invoegtoepassing en deze converteert naar een tekenreeks. Deze tekenreeks wordt vervolgens op de schijf opgeslagen volgens het PluginName_ReporterName.ReporterExtension patroon, bijvoorbeeld: ApiCenterOnboardingPlugin_MarkdownReporter.md.

Belangrijk

Omdat reporters afhankelijk zijn van de rapportobjecten die worden gegenereerd door rapportage-invoegtoepassingen, moet u de rapportageinvoegtoepassingen inschakelen in het configuratiebestand dev proxy na rapportage-invoegtoepassingen. Als u deze inschakelt voordat u invoegtoepassingen rapporteert, hebben reporters geen gegevens om over te rapporteren.