插件是向开发代理注册的 .NET 类,该类引入了特定的开发代理行为。 插件可以提供有关 API 使用情况、模拟 API 行为、分析多个 API 请求或生成报表的实时指南。 开发代理有三种类型的插件:
在 devproxyrc.json
文件中注册插件。 该文件包含要加载的插件列表及其配置。
开发代理附带插件 的 集合,你可以 创建自定义插件 来扩展开发代理功能以满足你的需求。
开发代理启动时,它会加载在其配置文件中启用的插件。 根据启用的插件,开发代理可以提供指导、模拟 API 行为或分析 API 请求。 以下部分介绍了不同类型的插件的工作原理。
截获插件
当开发代理截获与 urlsToWatch
数组中的一个 URL 匹配的请求时,它会按照配置文件中列出的顺序调用每个拦截插件。 每个截获插件都继承自 BaseProxyPlugin
类,并且可以订阅以下事件:
-
BeforeRequest
- 在开发代理截获请求时引发 -
BeforeResponse
- 在开发代理收到来自服务器的响应后引发 -
AfterResponse
- 在开发人员代理向客户端发送响应后引发
对于其中每个事件,插件都可以定义事件处理程序。 在处理程序中,插件可以分析请求和响应,并根据需要对其进行修改。 它还可以输出指导消息。 若要查看可能的情况,请参阅开发代理 提供的插件代码。
报告插件
使用开发代理可以记录 API 请求和响应。 通常使用录制来报告 API 使用情况或分析多个 API 请求。 报告插件继承自 BaseReportingPlugin
类,并向 AfterRecordingStop
事件注册事件处理程序。
停止录制时,Dev Proxy 将引发 AfterRecordingStop
事件,将记录的请求和响应列表作为参数传递给已注册的事件处理程序。 然后,报表插件可以分析记录的数据并生成报表对象。 报表对象是由报告插件定义的任意对象。 报告插件通过调用 StoreReport
方法存储报表。
重要
报告插件生成报表对象,开发代理将存储在内存中。 若要将这些报表对象转换为用户可读报表,必须在开发代理配置文件中启用一个或多个记者。
记者
开发代理使用 记者 将报表插件生成的报表对象转换为用户可读报表。 例如,MarkdownReporter 将报表对象转换为 Markdown 文件。 记者是继承自 BaseReporter
类的特殊插件。 它们实现 GetReport
方法,该方法采用报表插件创建的报表的参数,并将其转换为字符串。 然后,此字符串按照 PluginName_ReporterName.ReporterExtension
模式保存在磁盘上,例如:ApiCenterOnboardingPlugin_MarkdownReporter.md
。
重要
由于记者依赖于报表插件生成的报表对象,因此必须在报告插件之后在开发代理配置文件中启用报告插件。 如果在报告插件之前启用它们,则记者不会报告任何数据。