Модуль swestger Nest.js - объект в dto не виден в swagger - PullRequest
0 голосов
/ 28 октября 2018

Я реализую небольшое приложение в jest jes с swagger, у меня есть один столбец (postgresql) как объект json (простой тип json в typeorm), а вложенный объект не виден в swagger.Мой код для этого:

@ApiModelProperty()
@IsOptional()
  readonly foo: {
  boo: string[];
  boo2: string;
  boo3: string;
  ..etc
 };

в swagger У меня есть только foo, видимый с пустым объектом, возможно ли использование js-модуля swagger nest, чтобы сделать весь объект json видимым?

thx заранееKarol

Ответы [ 2 ]

0 голосов
/ 31 июля 2019

Не создавайте / не используйте интерфейс, создайте subDto (используйте экспорт или нет, если хотите), например:

export class SubDto {
    @ApiModelProperty({ type: String })
    @IsString()
    readonly subStringOne: string;

    @ApiModelProperty({ type: String })
    @IsString()
    readonly subStrinTwo: string;
}

export class MainDto {

    @ApiModelProperty({ type: String })
    @IsString()
    readonly mainStringOne: string;

    @ApiModelProperty({ type: [SubDto] })
    @IsArray()
    readonly mainArray: SubDto[];

    // or do the same thing for objects
    @ApiModelProperty({ type: SubDto })
    @IsJSON() // @IsOject doesn't exist in Nestjs so I use @IsJSON().
    readonly mainObject: SubDto;
}
0 голосов
/ 31 октября 2018

Используйте явный тип

export interface Foo {
  boo: string[];
  boo2: string;
  boo3: string;
  ..etc
}

и

@ApiModelPropertyOptional({ type: Foo })
@IsOptional()
readonly foo: Foo;
...