如何为Swagger UI定义[FromQuery]参数的默认值?

时间:2019-05-09 18:04:37

标签: c# .net-core swagger swashbuckle

我有一个动作:

[HttpGet]
[Route("foo")]
public ActionResult Foo([FromQuery] MyClass request)
{
    var image = ToImage(WidgetType.MedianSalesPriceSqft, request);
    return File(image.ToByteArray(), "image/png");
} 

在MyClass下面定义了:

public class MyClass {
    [DefaultValue("90210")]
    public string Zip { get; set; }

    [DefaultValue("5361 Doverton Dr")]
    public string StreetAddress { get; set; }               
}

当我点击/swagger/index.html并尝试使用该API时,即使定义了默认值,我也总是必须输入StreetAddress和Zip值。

Swagger当前提供了schema filter,让您为对象属性提供默认值,只要它们的默认值未设置为[FromQuery]。我想念一些简单的东西吗?

1 个答案:

答案 0 :(得分:1)

该问题似乎已在测试版中得到解决:
https://www.nuget.org/packages/Swashbuckle.AspNetCore/5.0.0-rc2

测试版有很多更改,我有几个DocumentFilter,需要进行重构,
我不得不评论一些无法确定如何在Beta中进行操作的内容。

我添加了与您相同的动作和类,如下所示:

enter image description here

单击“尝试”后,将填充值 enter image description here

只要您需要我的代码,就在这里:
https://github.com/heldersepu/csharp-proj/tree/master/WebApi_NetCore