如何设置Swagger默认值Example


前言

Swashbuckle.AspNetCore 版本<PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />

设置 Example 默认值

  1. 在实体上给定默认值
public class InputModel
{
    public string UserName { get; set; } = "userName";

    public string PassWord { get; set; } = "passWord";
}
  1. 实现ISchemaFilter接口
public class SchemaFilter : ISchemaFilter
{
    public void Apply(OpenApiSchema schema, SchemaFilterContext context)
    {
        if (!context.Type.IsClass || context.Type == typeof(string) || !context.Type.IsPublic || context.Type.IsArray) return;
        var obj = Activator.CreateInstance(context.Type);
        _ = (from sc in schema.Properties
             join co in context.Type.GetProperties() on sc.Key.ToLower() equals co.Name.ToLower()
             select sc.Value.Example = co.GetValue(obj) != null ? OpenApiAnyFactory.CreateFor(sc.Value, co.GetValue(obj)) : sc.Value.Example).ToList();
    }
}
  1. 注入到.net core 容器(Startup.cs)
public void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(options =>
    {
        options.SchemaFilter<SchemaFilter>();
    }
}

最后

OK,这样就大功告成。

这是我的第一篇博客,哈哈,简陋了些。希望对大家有帮助!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM