OpenApiSchema的Default字段可用值?布尔值转OpenAPIAny报错求解
解决OpenAPI参数默认值的类型转换错误
你碰到的问题核心是:OpenApiSchema.Default属性要求的是OpenApiAny类型实例,不能直接赋值C#原生的bool。要设置布尔默认值,必须用OpenAPI规范对应的类型包装类。
修正后的代码
operation.Parameters.Add(new OpenApiParameter() { Name = "Name", In = ParameterLocation.Query, Description = "Description", Required = false, Schema = new OpenApiSchema { Type = "boolean", Default = new OpenApiBoolean(true) // 使用OpenApiBoolean包装布尔值 } });
除布尔值外,还可以设置的默认值类型
- 布尔类型:
new OpenApiBoolean(true)或new OpenApiBoolean(false) - 字符串类型:
new OpenApiString("your_default_value") - 整数类型:
new OpenApiInteger(100) - 浮点数类型:
new OpenApiDouble(3.14)或new OpenApiFloat(2.5f) - 空值:直接设为
null(表示无默认值) - 数组类型:用
OpenApiArray包装元素,比如new OpenApiArray { new OpenApiString("item1"), new OpenApiInteger(2) } - 对象类型:用
OpenApiObject包装键值对,比如new OpenApiObject { ["key"] = new OpenApiString("value") }
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

