Swagger,NswagStudio,c#,Required = Newtonsoft.Json.Required.DisallowNull,如何处理

时间:2019-02-12 18:36:41

标签: c# json.net swagger nswag

给出:我对api影响有限的api是基于net core 2.2构建的。使用Standart netCore昂首阔步。 DTO的某些类别中带有标记为 [System.ComponentModel.DataAnnotations.Required]但由于某些原因(也可以讨论) 一些方法返回此类的对象,并且在此字段中为null。注释导致

"required": [
        "given",    - this field for example
        "family",
        "email",
        "postCode"
      ],
      "type": "object",
      ...

在庄严的规格 然后产生

[Newtonsoft.Json.JsonProperty("given", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] 

在C#生成的代码中(我使用的是nswag studio和具有标准配置的c#客户端)。然后,当我尝试使用生成的c#客户端从api获取此类对象的列表时,如果某些此类属性具有null,则它会明显引发newtonsoft反序列化异常。 那么我们该如何处理呢?我想到了客户端和服务器端的解决方案:

1)在服务器上,我们可以配置为不公开有关摇摇规格所需的信息。

2)在客户端上,我们可以配置将Required块转换为Required = Newtonsoft.Json.Required.Default

的行为

3)忘记所有这些,并坚持要求api不会返回带有空值的对象,而该值是市场需要的。

0 个答案:

没有答案