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