json - Swashbuckle、Swagger 模式和格式注释或 XML 注释
问题描述
我正在尝试在我的 Swagger 文档中添加格式和/或模式关键字。我正在使用 Swashbuckle 和 currenlty 我正在使用 XML 注释为我的不同字段插入描述。例如:控制器:
/// <summary>
/// Shows a list with states
/// </summary>
/// <param name="id">The state ID</param>
/// <returns>Offers the state</returns>
[HttpGet("id", Name = "Get")]
public async Task<ActionResult<State>> GetState(string id)
{
State result = GetState(id);
return Ok(result);
}
我希望招摇文档显示带有正则表达式的模式关键字:
'^[{(]?[0-9A-F]{8}[-]?(?:[0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$'
是否可以在使用 XML 注释或注释时添加此文档。我想对格式关键字提出同样的要求。例如:'格式:日期时间'
这些事情是否可以使用 XML 注释或带有 Swashbuckle 的注释来自动生成 Swagger 文档,或者这是否需要静态 swagger 文件?
解决方案
在项目中有一个如何将其用于模型的示例: https ://github.com/domaindrivendev/Swashbuckle/blob/5489aca0d2dd7946f5569341f621f581720d4634/Swashbuckle.Dummy.Core/Controllers/MetadataAnnotatedTypesController.cs#L21
public class PaymentMetadata
{
[Required]
public decimal Amount { get; set; }
[Required, RegularExpression("^[3-6]?\\d{12,15}$")]
public string CardNumber { get; set; }
[Required, Range(1, 12)]
public int ExpMonth { get; set; }
[Required, Range(14, 99)]
public int ExpYear { get; set; }
[StringLength(500, MinimumLength = 10)]
public string Note { get; set; }
}
对于像你这样的原语,我不确定它是否得到完全支持,你可以尝试使用类似的东西:
public async Task<ActionResult<State>> GetState([RegularExpression("PATTERN")]string id)
如果这不起作用,您可以使用IDocumentFilter注入它
推荐阅读
- python - python整数溢出解决方案
- angularjs - 将 res.json() 转为 Angular $http.get() 格式问题
- python - 如何向 Python 中的各个线程发送 CTRL-C 信号?
- android - 要为 Android Auto 实现 DVD 播放器功能,我应该扩展 TV HAL 吗?
- valgrind - valgrind 附加软件包有什么作用?
- android-studio - 错误:无法解决:运行时
- c++ - 具有多个结构的链表
- probability - 如何定义概率分布
- opengl-es - 如何根据与相机的距离将颜色与背景混合
- bash - 使用带有 ipython 的 jupyter 与 R (irkernel) 的 bash 的区别