我正在用swagger在嵌套js中实现小型应用程序,我有一列(postgresql)作为json对象(typeorm中的简单json类型),并且嵌套对象在swagger中不可见。我的代码:
@ApiModelProperty()
@IsOptional()
readonly foo: {
boo: string[];
boo2: string;
boo3: string;
..etc
};
在swagger中,我只有foo在空对象中可见,使用swagger nest js模块可以使整个json对象可见吗?
提前thx 卡罗尔
答案 0 :(得分:0)
使用显式类型
export interface Foo {
boo: string[];
boo2: string;
boo3: string;
..etc
}
和
@ApiModelPropertyOptional({ type: Foo })
@IsOptional()
readonly foo: Foo;
答案 1 :(得分:0)
请勿创建/使用界面的创建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;
}
答案 2 :(得分:0)
我相信您使用的是Nestjs的较旧版本,因为@ApiModelProperty
现在称为@ApiProperty
。
我建议您将nestjs升级到最新版本,并按照以下步骤操作,对我来说效果很好:
https://docs.nestjs.com/recipes/swagger#openapi-swagger
希望有帮助。