Introduce(插件系统简介)
概述
本后端系统提供了一个插件系统,允许开发者通过实现 IPluginInterceptor
接口来扩展系统的行为。插件可以在请求执行前后进行拦截,并执行自定义逻辑。插件管理器 (PluginManager
) 负责加载、管理和执行这些插件。
插件管理器 (PluginManager
)
PluginManager
)PluginManager
是插件功能的核心类,负责加载插件、管理插件实例以及执行插件的拦截逻辑。
主要功能
加载插件:
PluginManager
会扫描指定目录下的插件,并加载所有实现了IPluginInterceptor
接口的类。插件拦截:插件可以在请求执行前后进行拦截,执行自定义逻辑。
插件信息管理:每个插件可以附带元数据(如名称、描述、作者等),
PluginManager
会记录这些信息并提供查询接口。
主要方法
GetPluginDirectory()
: 获取插件目录列表。LoadPlugins(IServiceCollection services)
: 加载插件并将其注册到依赖注入容器中。GetLoadedPlugins()
: 获取已加载插件的元数据。ExecuteBeforeAsync(string route, object?[] args, string? username = null)
: 在请求执行前调用插件的OnBeforeExecutionAsync
方法。ExecuteAfterAsync(string route, object? result, string? username = null)
: 在请求执行后调用插件的OnAfterExecutionAsync
方法。RegisterPluginRoutes(IEndpointRouteBuilder endpoints)
: 注册路由
插件接口 (IPluginInterceptor
)
IPluginInterceptor
)IPluginInterceptor
是插件必须实现的接口,定义了插件在请求执行前后可以执行的操作。
方法
OnBeforeExecutionAsync(string route, object?[] args, string? username = null)
: 在请求执行前调用,可以修改请求参数或阻止请求继续执行。OnAfterExecutionAsync(string route, object? result, string? username = null)
: 在请求执行后调用,可以修改返回结果或执行其他操作。RegisterRoutes(IEndpointRouteBuilder endpoints)
:在程序启动时调用,用于注册路由
Last updated