NSwag 自动生成的客户端不显示默认值

NSwag autogenerated client does not show default values

我有一个启用了 Swagger 的 api。在其中一个端点中,我有一个请求,其中一些值设置为默认值。

[DefaultValue("test value")]
public string? Description { get; set; }

这在 api 的 Swagger 页面中看起来不错。 Swagger 示例中使用默认值。

我们使用 NSwag 生成一个 api 客户端,该客户端在网关中使用。当我生成这样一个客户端时,请求对象是这样的:

[System.Text.Json.Serialization.JsonPropertyName("description")]
public string? Description { get; set; } = "test value";

赋值对网关中的 Swagger 定义没有影响,因此该值显示为 description : "string"

如何正确地将 DefaultValue 注释传输到自动生成的客户端,以便我可以重用请求对象并显示带有测试值字符串集的示例?

api 的 swagger.json 描述字段看起来像这样:

"properties": {
          "description": {
            "type": "string",
            "default": "test value",
            "nullable": true
          },

我没有找到单独使用 NSwag 的解决方案。

因此,我使用 Microsoft 的 openapi 包,结合 Roslyn,创建了一个小应用程序,它读取 swagger Json 定义,解析生成的客户端的源代码,并设置默认值属性.

这有效,并提供了相当多的控制,但如果它是 NSwag 中的一个功能,我仍然会更喜欢。