Start(快速上手)
1. 创建插件类
要编写插件,首先你需要创建一个实现了 IPluginInterceptor
接口的类,并使用 PluginTag
特性来定义插件的元数据(名称、描述和作者)。
例如,以下是一个简单的插件实现:
using imarket.plugin;
namespace plugin_test
{
[PluginTag(Name = "plugin_test", Description = "A plugin for testing", Author = "Your Name")]
public class plugin_test: IPluginInterceptor
{
// 请求开始时拦截
public async Task<(bool op, object? result)> OnBeforeExecutionAsync(string route, object?[] args, string? username = null)
{
// 路由筛选
if (route == "/api/Account/Info" && !string.IsNullOrEmpty(username))
{
return (true,new
{
success = true,
info = new
{
username = "test",
nickname = "test",
avatar = "test",
email = "test",
status = "test",
from = "test"
}
});
}
return (false,null);
}
// 请求处理完成拦截
public async Task<(bool op, object? result)> OnAfterExecutionAsync(string route, object? result, string? username = null)
{
return (false, null);
}
// 注册路由
public void RegisterRoutes(IEndpointRouteBuilder endpoints)
{
// 注册路由
endpoints.MapGet("/api/plugin_test", async context =>
{
await context.Response.WriteAsJsonAsync(new
{
success = true,
message = "Hello from plugin_test"
});
});
}
}
}
在plugin文件夹下面创建文件夹,文件结构如下
- plugin
- myplugin
- plugin.cs
Last updated