我有一个问题,就是我已经将查询参数设置为可选,但它并没有在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
  }

但它是狂妄自大的,它表现为:

enter image description here

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

非常感谢.

推荐答案

您应该从@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
  }

Node.js相关问答推荐

Socket.io 未将用户加入给定房间

Node js 处理回调和 Promise

为什么我的过滤器无法在我在下面编写的 Google Analytics 4 应用程序脚本代码中工作?我该如何修复它?

如何从 Mongo Atlas 触发器向 GCP PubSub 发出经过身份验证的请求

NPM如何管理node_modules传递依赖?

如何在 JavaScript 中显示多维数组中使用的一维数组的变量名?

bcrypt.compare 每次都返回 false

在 MacOS Ventura 上使用 NVM 安装 node ?

加速 sequelize ORM 中的查询

Google Calendar API FreeBusy 外部用户

使用 .pipe(res) 向客户端发送音频不允许您搜索?

如何使动态私有IP地址静态?

如何正确使用 package.json 中的关键字属性?

Node JS:自动 Select `http.get`与`https.get`

如何在 NodeJS 中获取操作系统用户名?

使 pm2 登录到控制台

Node_redis - 如何删除密钥?

容器之间的 Docker HTTP 请求

node.js 中存储的模块变量在什么范围内?

在 Jade 包含中使用变量