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

配置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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:01:17