【问题标题】:Add example value to swagger UI for parameters将示例值添加到参数的招摇 UI
【发布时间】:2021-02-18 13:22:32
【问题描述】:

.Net 核心中是否有任何方法可以在 Swagger UI 中将示例值包含到操作方法的参数中。与响应/请求的示例值显示方式相同。

.Net core 中似乎没有任何直接的方法,例如 SwaggerRequestExample,因此可以为参数显示示例值。

有人可以帮助我提供初始解决方案或任何我可以开始的链接吗?

我正在寻找类似下面的输出。

这是模型对象

public class Vehicle
{
        public long Id { get; set; }
        public string VehicleName { get; set; }
        public int Price { get; set; }
}

这是post方法

 [HttpPost]
 public void Post(int id, [FromBody] Vehicle val)
 {

 }

这会将 ID 显示为参数,但车辆模型不会显示在参数列表中。我希望它显示为示例值。我还在启动文件中配置了以下内容 c.IncludeXmlComments(xmlPath);

【问题讨论】:

  • 您能否在代码中包含您迄今为止尝试过的内容?
  • @NicholasRees 我已编辑问题以包含代码

标签: .net-core swagger asp.net-core-webapi swagger-ui


【解决方案1】:

默认情况下,Swashbuckle 在规范的 3.0 版本(正式称为 OpenAPI 规范)中生成并公开 Swagger JSON。为了支持向后兼容性,您可以选择以 2.0 格式公开 JSON。这种2.0 格式对于当前支持OpenAPI 版本2.0 的Microsoft Power Apps 和Microsoft Flow 等集成非常重要。要选择2.0 格式,请在 Startup.Configure 中设置SerializeAsV2 属性:

   ...
   // Enable middleware to serve generated Swagger as a JSON endpoint.
    app.UseSwagger(c =>
    {
        c.SerializeAsV2 = true;
    });
  ...

之前

{
  "openapi": "3.0.1",
  "info": {
    "title": "SwaggerApplication",
    "version": "1.0"
  },...

之后

{
  "swagger": "2.0",
  "info": {
    "title": "SwaggerApplication",
    "version": "1.0"
  }, ...

【讨论】:

  • 感谢@Michael 的回答。是的,我可以这样做,但我需要在参数描述中使用这个“示例值”。我在应该如何显示的问题中添加了链接。
  • @Soft_API_Dev,我明白你的意思了,你需要的是2.0 UI而不是3.0,你可以选择上面的2.0格式,测试结果已经给你了。跨度>
  • 这就是我要找的。有效!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2021-05-22
  • 2022-06-21
  • 2022-10-05
  • 2018-10-14
  • 1970-01-01
相关资源
最近更新 更多