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

Swagger/NSwag keep decimal datatype

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

...
"quantity": {
            "type": "number",
            "format": "double"
          },
...

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

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

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

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

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