4

最近nestjs/swagger、プロジェクトのパッケージを に更新しました^4.0.0。以前、Swagger はクエリ パラメータを次のようにシリアル化していました。

/resources?parameter=1,2,3

次のようになります。

/resources?parameter=1&parameter=2&parameter=3

私のクエリの DTO オブジェクトは次のようになります。

class QueryDTO {
  @ApiProperty({
    required: false,
    type: [Number],
  })
  @IsOptional()
  readonly parameter?: number[];
}

この動作を変更するにはどうすればよいですか?

4

2 に答える 2

2

回避策として、DTO から @ApiProperty を削除し、スタイルと展開オプションを持つコントローラー メソッドで @ApiQuery デコレーターを使用できます (dto プロパティと同じパラメーター名を保持するだけです)。

    @Get('resources')
    @ApiQuery({name: 'parameter', required: false, explode: false, type: Number, isArray: true})
    getResources(@Query('parameter') parameter?: number[]) {}

通常の方法で機能する追加のパラメーターとして、DTO オブジェクトをそのまま使用できます。

于 2020-05-18T17:16:59.947 に答える