Swagger/NSwag 保留十进制数据类型

Kar*_*arl 10 c# swagger swashbuckle openapi nswag

我确实有我的 .net 数据类,其中包含一些小数字段(例如quantity)。我运行 dotnet swagger 生成一个 openapi.json 。

...
"quantity": {
            "type": "number",
            "format": "double"
          },
...
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它生成了一个格式为“double”的“number”类型。nswag 创建一个客户端,其中字段也是双精度的。

我可以以某种方式配置将格式设置为十进制吗?当我手动编辑 openapi.json 时,nswag 创建会按预期生成小数。

我尝试添加此注释,但它没有改变任何内容:[JsonSchema(JsonObjectType.Number, Format = "decimal")]

And*_*ver 12

尝试将此行添加到您的.AddSwaggerGen()定义中

services.AddSwaggerGen(c =>
  c.MapType<decimal>(() => new OpenApiSchema { Type = "number", Format = "decimal" });
  // ...
Run Code Online (Sandbox Code Playgroud)