Nestjs/swagger:复杂对象

Nestjs/swagger: Complex Objects

我想知道是否有办法支持 Nestjs/swagger 的复杂对象。我刚刚完成迁移,现在正在处理 swagger 文档。我的很多请求 return 复杂对象,我想知道是否有更简单的方法。 示例:

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": {}
}

更新 04/2020ApiModelProperty 现在已更改为 ApiProperty

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

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

    class Foobar {
      @ApiProperty({ type: () => SubProp })
      prop1: SubProp;
    }

在上一个 ApiProperty 中,我使用了 "Lazy Evaluated Function" 语法。这是为了防止循环依赖问题。我想我会把它加进去。


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

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

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

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