Nestjs/swagger:复杂对象

Nestjs/swagger:复杂对象,swagger,nestjs,Swagger,Nestjs,我想知道是否有一种方法可以支持Nestjs/swagger的complexe对象。我刚刚完成了迁移,现在正在编写swagger文档。我的很多请求都返回complexe对象,所以我想知道是否有更简单的方法。 例如: class Foobar{ prop1: { subprop1: { subsub1: string; }; }; } 变成: class SubSub{ @ApiModelProperty() subsub1: string; } cla

我想知道是否有一种方法可以支持Nestjs/swagger的complexe对象。我刚刚完成了迁移,现在正在编写swagger文档。我的很多请求都返回complexe对象,所以我想知道是否有更简单的方法。 例如:

class Foobar{
  prop1: {
    subprop1: {
      subsub1: string;
    };
  };
}
变成:

class SubSub{
  @ApiModelProperty()
  subsub1: string;
}
class SubProp{
  @ApiModelProperty()
  subporp1: SubSub;
}
class Foobar {
  @ApiModelProperty()
  prop1: SubProp;
}
如果我这样做:

class Foobar{
  @ApiModelProperty()
  prop1: {
    subprop1: {
      subsub1: string;
    };
  };
}
我大摇大摆地说:

{
  "prop1": {}
}

更新日期2020年4月
ApiModelProperty
现在已更改为
ApiProperty

类子类{
@ApiProperty()
subsub1:字符串;
}
类子程序{
@ApiProperty({type:subsubsub})
亚形态1:亚形态;
}
福巴级{
@ApiProperty({type:()=>subop})
方案1:次级方案;
}
在上一个ApiProperty中,我使用了“Lazy求值函数”语法。这是为了防止循环依赖问题。我想我应该把它加进去



@ApiModelProperty
接受一个选项对象,如果它是一个复杂对象,您可以在其中指定
类型

@ApiModelProperty
已被重命名为
@ApiProperty
@ApiProperty({type:()=>[subop],}),这是用于对象数组的。
class SubSub{
  @ApiModelProperty()
  subsub1: string;
}

class SubProp{
  @ApiModelProperty({ type: SubSub })
  subporp1: SubSub;
}

class Foobar {
  @ApiModelProperty({ type: SubProp })
  prop1: SubProp;
}