C# 有没有办法在OpenApi v3规范属性中明确地设置nullable:false?
我试图将OpenAPI规范中的一个属性设置为required和nullable:false,正如我提供的C中所指定的那样 我正在使用NSwag v13.1.3和NewtonSoft.Json v12.0.2以及.NETCore2.2 我尝试过使用NewtonSoft.Json和NJsonSchema.Annotations传递各种组合,以将NotNull强制到字段上,但是在任何组合中都不可能使用null:false 我还尝试使用NSwagStudio生成与下面相同的代码,但是在规范中nullable没有设置为falseC# 有没有办法在OpenApi v3规范属性中明确地设置nullable:false?,c#,swagger,openapi,nswag,C#,Swagger,Openapi,Nswag,我试图将OpenAPI规范中的一个属性设置为required和nullable:false,正如我提供的C中所指定的那样 我正在使用NSwag v13.1.3和NewtonSoft.Json v12.0.2以及.NETCore2.2 我尝试过使用NewtonSoft.Json和NJsonSchema.Annotations传递各种组合,以将NotNull强制到字段上,但是在任何组合中都不可能使用null:false 我还尝试使用NSwagStudio生成与下面相同的代码,但是在规范中nullab
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
}
默认情况下,Nullable为false。这就是为什么它没有爆炸性地设置为false。默认情况下,Nullable为false。这就是为什么它没有爆炸性地设置为false。您可以使用[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;
}
}
您可以使用[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;
}
}
似乎不是这样:@MarkusMeyer我读到了,并且有这样的印象,如果它可以设置为null:true,那么它肯定可以设置为null:false,但它似乎不是这样:@MarkusMeyer我读到了,并且有这样的印象,如果它可以设置为null:true,那么它肯定可以设置为null:false,但它似乎不是在使用nSwag的angular项目中设置tsconfig.json strict:true时,这种情况对我很有效。我必须将该属性添加到类的任何IList属性中,因为默认情况下,它允许在自动生成的typescript类中未定义这些属性。这在angular编译器中创建了很多错误。在使用nSwag的angular项目中设置tsconfig.json strict:true时,这对我来说是有效的。我必须将该属性添加到类的任何IList属性中,因为默认情况下,它允许在自动生成的typescript类中未定义这些属性。这在angular编译器中产生了很多错误。