You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swagger-Net的ASP.NET Web API中为接口添加x-dev扩展?

为Swagger-Net的单个接口添加自定义扩展(x-dev)

步骤1:创建自定义特性类

首先定义对应x-dev扩展的自定义特性(C#中特性名称不能包含减号,故命名为XDevAttribute):

public class XDevAttribute : Attribute
{
    public string Value { get; }

    public XDevAttribute(string value)
    {
        Value = value;
    }
}

步骤2:实现IOperationFilter过滤器

创建操作过滤器,读取接口方法上的XDevAttribute并将其值注入到Swagger的扩展字段中:

public class XDevOperationFilter : IOperationFilter
{
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
    {
        var xDevAttr = apiDescription.ActionDescriptor.GetCustomAttributes<XDevAttribute>().FirstOrDefault();
        if (xDevAttr != null)
        {
            operation.extensions ??= new Dictionary<string, object>();
            operation.extensions.Add("x-dev", xDevAttr.Value);
        }
    }
}

步骤3:注册过滤器到Swagger配置

在Swagger配置文件(通常是SwaggerConfig.cs)中,添加这个自定义过滤器:

GlobalConfiguration.Configuration.EnableSwagger(c =>
{
    // 保留原有Swagger配置项
    c.OperationFilter<XDevOperationFilter>(); // 注册自定义扩展过滤器
})
.EnableSwaggerUi(c =>
{
    // 保留原有UI配置项
});

步骤4:标记目标接口

现在可以直接在接口方法上使用[XDev]特性,对应需求中的[x-dev]:

[HttpGet]
[XDev("Myself")]
public async Task<User> GetAllUsers()
{
    // 接口业务逻辑
}

完成以上配置后,生成的Swagger文档中,该接口的Operation节点下会自动添加"x-dev": "Myself"的自定义扩展字段。

内容的提问来源于stack exchange,提问作者Afsal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:01:44