Nestjs / swagger:复杂对象

Ale*_*tte 1 swagger nestjs

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

class Foobar{
  prop1: {
    subprop1: {
      subsub1: string;
    };
  };
}
Run Code Online (Sandbox Code Playgroud)

成为:

class SubSub{
  @ApiModelProperty()
  subsub1: string;
}
class SubProp{
  @ApiModelProperty()
  subporp1: SubSub;
}
class Foobar {
  @ApiModelProperty()
  prop1: SubProp;
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

class Foobar{
  @ApiModelProperty()
  prop1: {
    subprop1: {
      subsub1: string;
    };
  };
}
Run Code Online (Sandbox Code Playgroud)

我大张旗鼓地得到了这个:

{
  "prop1": {}
}
Run Code Online (Sandbox Code Playgroud)

小智 7

class SubSub {
  @ApiProperty()
  subsub1: string;
}

class SubProp {
  @ApiProperty({ type: SubSub })
  subporp1: SubSub;
}
Run Code Online (Sandbox Code Playgroud)

或者如果数组

class SubProp {
  @ApiProperty({ isArray: true,  type: SubSub })
  subporp1: SubSub[];
  //or subporp1: [SubSub];
}
Run Code Online (Sandbox Code Playgroud)


Cha*_*ran 5

class SubSub{
  @ApiModelProperty()
  subsub1: string;
}

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

class Foobar {
  @ApiModelProperty({ type: SubProp })
  prop1: SubProp;
}
Run Code Online (Sandbox Code Playgroud)

如果@ApiModelProperty有一个对象,则可以在其中指定type它是否为复杂对象。

  • @ApiProperty({ type: () => [SubProp], }) 这是对象数组。 (7认同)
  • “@ApiModelProperty”已更名为“@ApiProperty” (2认同)