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

Web-API Swagger/Swashbuckle - Link field to database lookup list

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

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

有效值列表可能只包含 5 到 10 个项目。但是,它们不能在我的应用程序中定义为实际枚举,因为它们是通过 CMS 编辑 table,并存储在数据库 table.

目前我只是将这些属性定义为字符串,然后提供了一些文档来指示哪个端点可用于检索有效值列表。

这似乎不是一个非常正确的方法。我真的很想把它锁定得更好一点,所以对于试图使用 api.

的开发人员来说,没有混淆的余地

我用 pattern 验证关键字做了类似的事情:
https://datatracker.ietf.org/doc/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 在运行时添加模式