c# – Swagger参数的默认值

c# – Swagger参数的默认值,第1张

概述如何在以下API生成的swagger中定义属性的默认值? public class SearchQuery{ public string OrderBy { get; set; } [DefaultValue(OrderDirection.Descending)] public OrderDirection OrderDirection { ge 如何在以下API生成的swagger中定义属性的默认值?
public class Searchquery{        public string OrderBy { get; set; }        [DefaultValue(OrderDirection.Descending)]        public OrderDirection OrderDirection { get; set; } = OrderDirection.Descending;}public IActionResult SearchPendingCases(Searchquery queryinput);

Swashbuckle生成OrderDirection作为必需参数.我想成为可选项并向客户端指示默认值(不确定swagger是否支持此功能).

我不喜欢使属性类型可以为空.还有其他选择吗?理想情况下使用内置类…

我使用Swashbuckle.AspNetCore – https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio

解决方法 我总是在param上设置默认值,如下所示:
public class TestPostController : APIController{    public decimal Get(decimal x = 989898989898989898,decimal y = 1)    {        return x * y;    }}

这就是swagger-ui的样子:
http://swashbuckletest.azurewebsites.net/swagger/ui/index#/TestPost/TestPost_Get

UPDATE

在对评论进行讨论之后,我更新了Swagger-Net以通过反射读取DefaultValueAttribute
这是我正在使用的示例类:

public class MyTest{    [MaxLength(250)]    [DefaultValue("HelloWorld")]    public string name { get; set; }    public bool IsPassing { get; set; }}

这是swagger Json的样子:

"MyTest": {  "type": "object","propertIEs": {    "name": {      "default": "HelloWorld","maxLength": 250,"type": "string"    },"IsPassing": {      "type": "boolean"    }  },"xml": {    "name": "MyTest"  }},

Swagger-Net的源代码在这里:
https://github.com/heldersepu/Swagger-Net

测试项目的源代码在这里:
https://github.com/heldersepu/SwashbuckleTest

总结

以上是内存溢出为你收集整理的c# – Swagger参数的默认值全部内容,希望文章能够帮你解决c# – Swagger参数的默认值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1243291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存