Aracılığıyla paylaş


Eklenti mimarisi

Eklenti, Belirli bir Geliştirme Ara Sunucusu davranışını tanıtır ve Dev Proxy ile kaydedilen bir .NET sınıfıdır. Eklenti API kullanımı hakkında gerçek zamanlı rehberlik sunabilir, API davranışını simüle edebilir, birden çok API isteğini analiz edebilir veya bir rapor oluşturabilir. Dev Proxy'nin dört tür eklentisi vardır:

eklentilerini devproxyrc.json dosyasına kaydedersiniz. Dosya, yüklenecek eklentilerin listesini ve bunların yapılandırmasını içerir.

Geliştirme Proxy'si, bir eklenti koleksiyonuyla birlikte gelir ve Geliştirme Ara Sunucusu işlevselliğini gereksinimlerinize uyacak şekilde genişletmek için özel eklentiler oluşturabilirsiniz.

Geliştirme Proxy'si başlatıldığında, yapılandırma dosyasında etkinleştirilen eklentileri yükler. Hangi eklentileri etkinleştirdiğinize bağlı olarak, Dev Proxy rehberlik sağlayabilir, API davranışını simüle edebilir veya API isteklerini analiz edebilir. Aşağıdaki bölümlerde farklı eklenti türlerinin nasıl çalıştığı açıklanmaktadır.

Eklentileri kesme

Geliştirme Ara Sunucusu, urlsToWatch dizisindeki URL'lerden biriyle eşleşen bir isteği kestiğinde, her kesme eklentisini yapılandırma dosyasında listelendikleri sırayla çağırır. Her kesme eklentisi BaseProxyPlugin sınıfından devralır ve aşağıdaki olaylara abone olabilir:

  • BeforeRequest - Dev Proxy bir isteği kestiğinde tetiklenen
  • BeforeResponse - Dev Proxy sunucudan bir yanıt aldıktan sonra oluşturulur
  • AfterResponse - Dev Proxy yanıtı istemciye gönderdikten sonra tetiklenmiş

Bu olayların her biri için eklentiler bir olay işleyicisi tanımlayabilir. İşleyicide eklenti, isteği ve yanıtı analiz edebilir ve gerekirse değiştirebilir. Ayrıca kılavuz iletilerinin çıkışını da verebilir. Nelerin mümkün olduğunu görmek için Bkz. Dev Proxy ile sağlanan eklentilerinkodu.

STDIO eklentileri

komutunu kullandığınızdastdio, Dev Proxy proxy'si yerel yürütülebilir dosyalarla STDIN/STDOUT/STDERR iletişimini sağlar. STDIO ara sunucusu, Model Bağlam Protokolü (MCP) sunucularını ve diğer STDIO tabanlı uygulamaları test etme ve hata ayıklama için kullanışlıdır.

STDIO eklentileri arabirimi uygular IStdioPlugin ve aşağıdaki olaylara abone olabilir:

  • BeforeStdinAsync - STDIN alt işleme iletilmeden önce yükseltildi
  • AfterStdoutAsync - alt işlemden STDOUT alındıktan sonra yükseltilmiş
  • AfterStderrAsync - Alt işlemden STDERR alındıktan sonra yükseltildi
  • AfterStdioRequestLogAsync - STDIO istek/yanıt çiftlerini günlüğe kaydetmek ve kaydetmek için yükseltilmiş
  • AfterStdioRecordingStopAsync - Oturum sona erdiğinde kayıtları işlemeye yükseltildi

Eklentiler ayarlayarak ResponseState.HasBeenSet = trueiletileri değiştirebilir, kullanabilir veya sahte iletileri kullanabilir. Aşağıdaki eklentiler STDIO kesme işlemini destekler:

Raporlama eklentileri

Geliştirme Proxy'si, API isteklerini ve yanıtlarını kaydetmenize olanak tanır. Api kullanımını raporlamak veya birden çok API isteğini analiz etmek için genellikle kaydı kullanırsınız. Raporlama eklentileri BaseReportingPlugin sınıfından devralır ve AfterRecordingStop olayına bir olay işleyicisi kaydeder.

Kaydı durdurduğunuzda Dev Proxy, kaydedilen isteklerin ve yanıtların listesini kayıtlı olay işleyicilerine bağımsız değişken olarak geçirerek AfterRecordingStop olayını başlatır. Raporlama eklentileri daha sonra kaydedilen verileri analiz edebilir ve bir rapor nesnesi oluşturabilir. Rapor nesnesi, raporlama eklentisi tarafından tanımlanan rastgele bir nesnedir. Raporlama eklentileri, StoreReport yöntemini çağırarak raporları depolar.

Önemli

Raporlama eklentileri, Dev Proxy'nin bellekte depoladığı rapor nesneleri oluşturur. Bu rapor nesnelerini kullanıcı tarafından okunabilir raporlara dönüştürmek için Dev Proxy yapılandırma dosyasında bir veya daha fazla muhabiri etkinleştirmeniz gerekir.

Gazeteci -lere

Geliştirme Proxy'si, raporlama eklentileri tarafından oluşturulan rapor nesnelerini kullanıcı tarafından okunabilir raporlara dönüştürmek için muhabirleri kullanır. Örneğin, MarkdownReporter bir rapor nesnesini Markdown dosyasına dönüştürür. Muhabirler, BaseReporter sınıfından devralınan özel eklentilerdir. Bir raporlama eklentisi tarafından oluşturulan bir raporu bağımsız değişken olarak alan ve bunu dizeye dönüştüren GetReport yöntemini uygularlar. Bu dize daha sonra PluginName_ReporterName.ReporterExtension deseninin ardından diske kaydedilir, örneğin: ApiCenterOnboardingPlugin_MarkdownReporter.md.

Önemli

Muhabirler, raporlama eklentileri tarafından oluşturulan rapor nesnelerine bağlı olduğundan, raporlama eklentilerini raporladıktan sonra Dev Proxy yapılandırma dosyasında raporlama eklentilerini etkinleştirmeniz gerekir. Eklentileri raporlamadan önce bunları etkinleştirirseniz, muhabirlerin bildirecek verisi olmaz.