我有一个表示端点主体的类,该类是Amount
属性,它看起来像这样:
/// <summary>
/// The transaction amount; it must be greater than 0
/// </summary>
/// <example>1.23</example>
[JsonProperty("Amount")]
[Required]
public decimal Amount { get; set; }
我遇到的问题是,当Swashbuckle为该请求正文示例生成JSON时,它最终将Amount
值用双引号引起来,如下所示:
{
"Amount": "1.23"
}
我希望它看起来像一个数字,像这样:
{
"Amount": 1.23
}
如果我没有提供XML示例标签,则SwaggerUI中生成的请求正文示例就是0.0
,没有双引号,例如:
{
"Amount": 0.0
}
此示例生成的XML注释部分没有引号:
<member name="P:MyAPI.Models.SaleRequest.Amount">
<summary>
The transaction amount; it must be greater than 0
</summary>
<example>1.23</example>
</member>
但是从Swashbuckle生成的JSON可以做到:
"SaleRequest": {
"required": [
"Amount"
],
"type": "object",
"properties": {
"Amount": {
"format": "decimal",
"description": "The transaction amount; it must be greater than 0",
"type": "number",
"example": "1.23"
}
}
}
有没有一种方法可以告诉Swashbuckle不要为带双引号的数字属性包装此XML示例标记?我搜索了一段时间,找不到任何东西。我在配置swagger时曾尝试过另一篇文章的c.MapType<decimal>(() => new Schema { Type = "number", Format = "decimal" });
,但这并没有改变任何内容。我也没有在源代码中看到可以应用于该属性的任何属性。我正在使用Swashbuckle 4.0.1