我正在尝试将OpenAPI规范中的属性设置为必需和可为null:如我提供的C#中指定的那样为false。
我正在使用NSwag v13.1.3和NewtonSoft.Json v12.0.2以及.Net Core 2.2
我尝试使用NewtonSoft.Json和NJsonSchema.Annotations传递各种组合,以将NotNull强制到字段中,但是可为null:在任何组合中似乎都不可能出现false。
我还尝试使用NSwagStudio生成与下面相同的代码,但是规范中未将nullable设置为false。
using Newtonsoft.Json;
public class Test {
[JsonProperty("test", Required = Required.Always)]
public string Test { get; set; }
[JsonProperty("testnullable", Required = Required.AllowNull)]
public string TestNullable { get; set; }
}
我希望这会为OpenApi规范提供nullable:false和nullable:true,但这是这样提供的:-
"required": [
"test",
"testnullable"
],
"properties": {
"test": {
"type": "string"
},
"testnullable": {
"type": "string",
"nullable": true
}
答案 0 :(得分:0)
Nullable默认为false。这就是为什么未将其迅速设置为false的原因。
答案 1 :(得分:0)
您可以使用[Required]
属性显示此数据得到保证。
[DisplayName("Location")]
public class LocationDtoOut {
[Required]
public decimal lat { get; set; }
[Required]
public decimal lng { get; set; }
public LocationDtoOut(decimal lat, decimal lng) {
this.lat = lat;
this.lng = lng;
}
}