配置ASP.NET Core Swagger:将非可空类型标记为必填项
如何配置Swagger/Swashbuckle,将非可空属性默认视为添加[Required]特性?
能不能配置Swagger/Swashbuckle,让所有未显式声明为可空的属性,自动被当作添加了[Required]特性?
比如有这样的响应类:
public class FooResponse { [Required] public string Bar {get;set;} }
因为属性类型是string而非string?,我希望不用手动添加[Required]特性,请问该怎么配置Swagger schema生成器实现这个功能?
更新
我目前的实现方案比较简单,但能覆盖我用到的大多数结构:
/** * Mark properties that are non-nullable as required. */ public class NullableSchemaFilter : ISchemaFilter { public void Apply(OpenApiSchema schema, SchemaFilterContext context) { if (schema.Type == "object") { foreach (var openApiSchema in schema.Properties) { if (openApiSchema.Value.Nullable == false) { schema.Required.Add(openApiSchema.Key); } } } } }
内容的提问来源于stack exchange,提问作者THX-1138
相关产品推荐
相关产品推荐

