Sdílet prostřednictvím


Architektura modulů plug-in

Modul plug-in je třída .NET zaregistrovaná ve službě Dev Proxy, která zavádí specifické chování dev proxy serveru. Modul plug-in může nabídnout pokyny k využití rozhraní API v reálném čase, simulaci chování rozhraní API, analýzu více požadavků rozhraní API nebo vytvoření sestavy. Dev Proxy má tři typy modulů plug-in:

  • zachycení modulů plug-in, které zachycují požadavky a odpovědi a mohou je analyzovat a upravovat.
  • moduly plug-in pro vytváření sestav, které běží na žádostech zaznamenaných dev proxy serverem
  • zpravodajů, které generují sestavy na základě dat shromážděných moduly plug-in pro vytváření sestav.

Do souborudevproxyrc.json zaregistrujete moduly plug-in . Soubor obsahuje seznam modulů plug-in pro načtení a jejich konfiguraci.

Dev Proxy obsahuje kolekci modulů plug-in a můžete vytvářet vlastní moduly plug-in, abyste rozšířili funkce Dev Proxy tak, aby odpovídaly vašim potřebám.

Když se spustí dev proxy server, načte moduly plug-in povolené v konfiguračním souboru. V závislosti na tom, které moduly plug-in povolíte, může dev proxy poskytovat pokyny, simulovat chování rozhraní API nebo analyzovat požadavky rozhraní API. Následující části vysvětlují, jak fungují různé typy modulů plug-in.

Zachycování modulů plug-in

Když Dev Proxy zachytí požadavek odpovídající jedné z adres URL v poli urlsToWatch, vyvolá každý zachycující modul plug-in v pořadí, v jakém jsou uvedeny v konfiguračním souboru. Každý zachycující modul plug-in dědí z třídy BaseProxyPlugin a může se přihlásit k odběru následujících událostí:

  • BeforeRequest – vyvolána při zachycení požadavku dev proxy serverem
  • BeforeResponse – vyvolá se po přijetí odpovědi ze serveru dev proxy serverem
  • AfterResponse – vyvolána po odeslání odpovědi dev proxy serveru klientovi

Pro každou z těchto událostí mohou moduly plug-in definovat obslužnou rutinu události. V obslužné rutině může modul plug-in analyzovat požadavek a odpověď a v případě potřeby ho upravit. Může také vypíše zprávy s pokyny. Pokud chcete zjistit, co je možné, podívejte se na kód modulů plug-in poskytovanýchDev Proxy .

Moduly plug-in pro vytváření sestav

Dev Proxy umožňuje zaznamenávat požadavky a odpovědi rozhraní API. Záznam obvykle používáte k hlášení o využití rozhraní API nebo analýze více požadavků rozhraní API. Moduly plug-in pro vytváření sestav dědí z třídy BaseReportingPlugin a zaregistrují obslužnou rutinu události s událostí AfterRecordingStop.

Když zastavíte nahrávání, dev proxy vyvolá událost AfterRecordingStop a předá seznam zaznamenaných požadavků a odpovědí jako argument registrovaným obslužným rutinám událostí. Moduly plug-in pro vytváření sestav pak mohou analyzovat zaznamenaná data a generovat objekt sestavy. Objekt sestavy je libovolný objekt definovaný modulem plug-in pro vytváření sestav. Moduly plug-in pro vytváření sestav ukládají sestavy voláním metody StoreReport.

Důležitý

Moduly plug-in pro vytváření sestav generují objekty sestav, které dev Proxy ukládá do paměti. Pokud chcete tyto objekty sestavy převést na sestavy čitelné uživatelem, musíte v konfiguračním souboru dev proxy povolit jeden nebo více zpravodajů.

Reportéři

Dev Proxy používá reportery k převodu objektů sestav vygenerovaných generováním modulů plug-in na uživatelsky čitelné sestavy. Například MarkdownReporter převede objekt sestavy na soubor Markdown. Reportéři jsou speciální moduly plug-in, které dědí z třídy BaseReporter. Implementují GetReport metodu, která přebírá jako argument sestavu vytvořenou modulem plug-in pro vytváření sestav a převádí ji na řetězec. Tento řetězec se pak uloží na disk podle vzoru PluginName_ReporterName.ReporterExtension, například: ApiCenterOnboardingPlugin_MarkdownReporter.md.

Důležitý

Vzhledem k tomu, že reportéři závisejí na objektech sestav vygenerovaných moduly plug-in pro vytváření sestav, musíte povolit moduly plug-in generování sestav v konfiguračním souboru dev proxy po vytváření sestav modulů plug-in. Pokud je povolíte před vytvářením sestav modulů plug-in, reportéři nebudou mít žádná data, na kterých by bylo možné sestavovat.