为Web API控制器操作添加Swashbuckle/Swagger的默认值

3
在C# Web Api控制器中,我该如何装饰一个操作的参数,以便在swagger中显示该参数的默认值?

https://github.com/domaindrivendev/Swashbuckle/issues/284 - Rebecca
谢谢@Rebecca,我看到过类似的东西,但是缺少了[AttributeUsage(AttributeTargets.Method,AllowMultiple = true)],所以它不能用于多个参数。这个例子唯一的问题是它会填充swagger中的参数字段,而不仅仅是提供右侧的示例输入。我以前在.Net中见过这样做,从来没有想到实现起来会这么难。:( - Ian Oakes
如果您可以将对象用作参数,则其中的属性可以在该属性上使用[DefaultValue("Whatever")]。例如:IActionResult Post(MyRequest request)。其中类MyRequest { [DefaultValue("Whatever")]public string Message { get; set; } }。 - Rebecca
这个默认值将会在每个请求中存在。如果我错了,请纠正我。 - Mayank Gupta
1个回答

0
你可以尝试以下类似的代码,我考虑将输入对象作为Product传递给Action方法,因为你在问题中没有明确指出。
1. 你可以在请求字段中使用///<example>value </example>标签。

public class Product { public int Id { get; set; }

///<summary>
///</summary>
///<example>示例值</example>
public string Description { get; set; }

}

2. (Content not provided)

对于操作方法中的默认参数值,您可以直接使用如下:

   /// <summary>
   /// Action Method Summary
   /// </summary>
   /// <param name="Description">example value</param>

尝试使用Web API Core 3的选项2,但它不起作用。 - Ian Oakes
请问您能分享一下您的代码吗?我会尝试找出问题所在。 - Mayank Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接