NestJS TypeORM 可选查询不起作用

NestJS TypeORM Optional Query not working

我有一个问题,我已将查询参数设置为可选,但它并没有反映出 optional in swagger,

这是我的代码:

    @Get('pagination')
  @ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
  public async getActivityPostPagination(
    @Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
    @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
    @Query('user_id') user_id?: string,
    @Query('badge_id') badge_id?: string,
    @Query('title') title?: string,
  ) {
    //code here
  }

不过是swagger,显示是这样的:

页面和限制不是可选的,但对于其他查询参数必须是可选的,我在这里缺少什么?

谢谢

您应该从@nestjs/swagger 包中添加@ApiQuery 标签,并为可选字段传入 required: false 参数。

  @Get('pagination')
  @ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
  @ApiQuery({ name: 'user_id', required: false, type: String })
  @ApiQuery({ name: 'badge_id', required: false, type: String })
  public async getActivityPostPagination(
    @Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
    @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
    @Query('user_id') user_id?: string,
    @Query('badge_id') badge_id?: string,
    @Query('title') title?: string,
  ) {
    //code here
  }