Web-API Swagger / Swashbuckle-链接字段到数据库查找列表

时间:2018-09-19 10:10:11

标签: asp.net-web-api swagger swashbuckle

使用Swashbuckle识别特定字段的值应该是数据库查找列表中的字符串的最佳方法是什么?

我想寻找的是某种装饰模型属性的方式,以表明它是枚举,但实际上没有将类型声明为枚举?

有效值列表可能仅包含5到10个项目。但是,由于它们可以通过CMS进行编辑并存储在数据库表中,因此无法定义为我的应用程序中的实际枚举。

此刻,我刚刚将这些属性定义为字符串,然后提供了一些文档来指示可用于检索有效值列表的端点。

这似乎不是一种非常正确的方法。我真的想将其锁定得更好一些,因此对于尝试使用api的开发人员来说,没有混淆的空间。

1 个答案:

答案 0 :(得分:1)

我使用pattern验证关键字做了类似的事情:
https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3

您的swagger.json如下所示:

"Transparency": {
  "type": "string",
  "pattern": "^(high|medium|low)"
},

为此,您有两个选择:

  • 您需要具备C#代码

[RegularExpression("^(high|medium|low)")]
public string Transparency { get; set; }

  • 或在运行时使用iDocumentFilter添加模式