我喜欢 swagger 的样子。json来保存列表或数组中可空类型的信息,有什么想法吗?
例如,如果我有以下模型:
public class AccountSettingsDto
{
public int Id { get; set; }
public decimal? Value { get; set; }
public List<decimal?> ListValue { get; set; }
public decimal?[] ArrayValue { get; set; }
}
下面的swagger设置
services.AddSwaggerGen(config =>
{
config.MapType<decimal>(() => new OpenApiSchema { Type = "number", Format = "decimal" });
config.UseAllOfToExtendReferenceSchemas();
});
我得到了下面的Json
"AccountSettingsDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"value": {
"type": "number",
"format": "decimal",
"nullable": true
},
"listValue": {
"type": "array",
"items": {
"type": "number",
"format": "decimal"
},
"nullable": true
},
"arrayValue": {
"type": "array",
"items": {
"type": "number",
"format": "decimal"
},
"nullable": true
}
},
"additionalProperties": false
}
正如您所看到的,“Value”属性被正确地设置为可空值,但列表或数组中的值不能设置为空值。作为一个大胆的猜测,我试图在我的swagger设置中添加以下行,但它显然不起作用。
config.MapType<decimal?>(() => new OpenApiSchema { Type = "number", Format = "decimal?" });
1条答案
按热度按时间mwg9r5ms1#
好吧,我没有正确地看设置的签名。为了解决这个问题,我只需要安装swagger如下: