当前位置: 首页 > 知识库问答 >
问题:

swashbuckle不支持嵌套类作为操作方法参数

轩辕远
2023-03-14

我正在使用ASP.NET 5

public class EditModel
{
   public class Command
   {
      public int Id { get; set; }
      public string Info { get; set; }
   }
}
public class CreateModel
{
    public class Command
    {
        public int Id { get; set; }
        public string Info { get; set; }
    }
}
    [HttpPost]
    public IActionResult PutData(CreateModel.Command model)
    {
        return Ok();
    }

    [HttpPut]
    public IActionResult PostData(EditModel.Command model)
    {
        return Ok();
    }

如果我将其中一个命令模型名称更改为不同的名称,那么Swagger就可以工作了。然而,我相信这个嵌套类模型名称是合法的,也应该与swagger一起使用。如果有办法解决这个问题。谢谢

共有1个答案

殷建弼
2023-03-14

通过添加C.CustomSchemaids(x=>x.fullname);

services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "TestSwagger", Version = "v1" });
                c.CustomSchemaIds(x => x.FullName);
            });

解决了schemaId冲突。多亏了这个问题

 类似资料:
  • 我正在使用sql server进行数据库连接。并且我希望在运行多个结果集时保持结果集打开。我使用了,但在执行语句时出现以下错误, 由于我是使用sql server的新手,所以我对其中的一些概念还不是很了解。如果有人知道为什么会这样请回答我。

  • 我正在为我的小型数据科学项目计算线性回归。 当将list(Dictionary.values())传递到我得到的类中时 回溯(最近的调用为last):文件“C://users/paweé/documents/projects vscode/worldbankdatakeras/tests.py”,第41行,在graph.plot_graph_renewable_electricity_status

  • 请看下面的代码。我使用Apache Derby作为嵌入式数据库 此代码出现以下错误 在这里,我试图做的是,获取全名,它作为FirstName、MiddleName和LastName存储在数据库中。 示例:名字-彼得,中间名-梅塔,姓氏-约翰逊 然后我试着得到“彼得·梅塔·约翰逊”。这就是为什么我使用运算符将值合并到3列中。 为什么我得到这个错误?这在MSSQL Server中有效,但在Derby中

  • 我有两个RDD说 RDD2基本上是使用范围(intial_value、end_value、间隔)生成的。这里的参数可以变化。大小可以与rdd1相同或不同。这个想法是基于使用过滤Criertia的rdd2值将记录从rdd1提取到rdd2(rdd1的记录可以在提取时重复,正如您在输出中看到的那样) 过滤条件rdd1。创建 预期产出: 现在我想根据一些使用RDD2键的条件过滤RDD1。(如上所述)并返回

  • 问题 你想让某个类的实例支持标准的比较运算(比如>=,!=,<=,<等),但是又不想去实现那一大丢的特殊方法。 解决方案 Python类对每个比较操作都需要实现一个特殊方法来支持。 例如为了支持>=操作符,你需要定义一个 __ge__() 方法。 尽管定义一个方法没什么问题,但如果要你实现所有可能的比较方法那就有点烦人了。 装饰器 functools.total_ordering 就是用来简化这个

  • SDS 提供了以下一系列操作来处理表和记录 表操作 SDS 提供创建、修改、复制、禁用、启用和删除表的操作 创建表(createTable):以指定的表名和schema创建一张表 修改表(alterTable):可以增加或删除属性,修改表权限,修改读写配额、空间配额,修改二级索引类型等 复制表(cloneTable):从现有的表复制一张表名不同但内容一样的表 禁用表(disableTable):将