【问题标题】:Nestjs/swagger: Complex ObjectsNestjs/swagger:复杂对象
【发布时间】:2018-11-27 13:11:43
【问题描述】:

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

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

【问题讨论】:

    标签: swagger nestjs


    【解决方案1】:

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

        class SubSub{
          @ApiProperty()
          subsub1: string;
        }
    
        class SubProp{
          @ApiProperty({ type: SubSub })
          subporp1: SubSub;
        }
    
        class Foobar {
          @ApiProperty({ type: () => SubProp })
          prop1: SubProp;
        }
    

    在最后一个ApiProperty 中,我使用了“惰性求值函数”语法。这是为了防止循环依赖问题。我想我会把它加进去。


    class SubSub{
      @ApiModelProperty()
      subsub1: string;
    }
    
    class SubProp{
      @ApiModelProperty({ type: SubSub })
      subporp1: SubSub;
    }
    
    class Foobar {
      @ApiModelProperty({ type: SubProp })
      prop1: SubProp;
    }
    

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

    【讨论】:

    • @ApiModelProperty 已重命名为 @ApiProperty
    • @ApiProperty({ type: () => [SubProp], }) 这是对象数组。
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2021-09-20
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多