【问题标题】:From where we can set default values for swagger when you run当您运行时,我们可以从中设置 swagger 的默认值
【发布时间】:2021-09-01 06:40:10
【问题描述】:

我想知道如何在 swagger 中设置默认值,当您运行项目时,我认为它在类中设置如下:

 /// <summary>
 /// Your spread percentage
 /// </summary>
 /// <example>12</example>
 public decimal ClassNumber { get; set; } = default!;

但它不起作用,应该有其他地方设置默认值

【问题讨论】:

    标签: .net asp.net-core swagger


    【解决方案1】:

    您可以添加自定义ISchemaFilter 来修改您的示例值:

    注意:不确定您的Swagger 版本是什么,不同版本的swagger 会使Apply() 中的参数不同。我用Swashbuckle.AspNetCore v 5.6.3

    型号:

    public class TestModel
    {
        public decimal ClassNumber { get; set; }
        //other properties...
    }
    

    自定义架构过滤器:

    public class CustomSchemaFilter : ISchemaFilter
    {
        public void Apply(OpenApiSchema schema, SchemaFilterContext context)
        {
            if (context.Type == typeof(TestModel))
            {
                schema.Example = new OpenApiObject
                {
                    ["ClassNumber"] = new OpenApiString("2.6"),
                    //["ToDate"] = new OpenApiInteger(1)
                    //other property in your model
                };
            }
        }
    }
    

    在 Startup.cs 中注册过滤器:

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebapiProject5", Version = "v1" });
        c.SchemaFilter<CustomSchemaFilter>();
    
    });
    

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 2020-02-21
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      相关资源
      最近更新 更多