设置Swagger默认值Example
Swagger版本:
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="5.6.3" />
1、在实体上给定默认值
public class InputModel { public string UserName { get; set; } = "userName"; public string PassWord { get; set; } = "passWord"; }
2、实现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(); } }
3、注入到.net core 容器(Startup.cs)
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(options => { options.SchemaFilter<SchemaFilter>(); } }