在 Swagger UI 中,如何自定义 body 输入 ui(模型架构 UI)
Posted
技术标签:
【中文标题】在 Swagger UI 中,如何自定义 body 输入 ui(模型架构 UI)【英文标题】:In Swagger UI, how to customize body input ui (model schema UI) 【发布时间】:2017-01-24 21:58:21 【问题描述】:我在 C#.Net 应用程序中使用带有 Swagger 2.0 的“swagger UI”,并显示 Get、Post、Delete 端点。
对于 Post,我将“模型架构”作为正文(输入参数)传递。
很难使用一个文本区域来输入类对象。
是否可以单独自定义主体参数 UI...例如为类对象(模型架构)中的所有参数单独输入框?
因此,对于带有模型架构参数的 post 方法,UI 将是类对象(模型架构)中所有参数的单独文本框..
【问题讨论】:
【参考方案1】:您是否注意到点击Data Type 列上的Example value
实际上会使用默认实体内容填充body 值?这是避免全部输入的开始。
尽管如此,您 can also override 当前 Swagger UI 显示,更改 existing views content 以匹配 text-area
以转换为显示属性文本框而不是单个文本区域的定制解析器。
【讨论】:
感谢您的回复。单击“数据类型”列上的“示例值”,用默认值正确填写正文值。 在我的用例中,我有非常大的类/正文参数要发布。作为最终用户,在一个文本区域(一个文本区域)中填充所有值并不容易。我正在为正文值中的每个参数寻找一个单独的文本框。 你是对的......正如你所提到的,我正在寻找单独的文本框而不是单个文本区域。如何进行一般转换/覆盖(以支持所有相似的主体参数)? Swagger UI 为此提供了一个通用控件作为文本区域。我没有找到任何与您的要求相似的东西,因此您实际上可以通过自己构建它来为它做出贡献。【参考方案2】:将以下代码添加到Startup.cs
中的ConfigureServices
services.AddControllers()
//Used to Add Input field to the Swagger UI
.ConfigureApiBehaviorOptions(options =>
options.SuppressInferBindingSourcesForParameters = true;
);
【讨论】:
以上是关于在 Swagger UI 中,如何自定义 body 输入 ui(模型架构 UI)的主要内容,如果未能解决你的问题,请参考以下文章
如何编写自定义排序器以在 UI 中按名称对 springdoc swagger 标签进行排序?
Spring Boot + Swagger + 自定义 swagger-ui.html