You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nest.js中可选布尔查询参数未在Swagger中显示

解决Nest.js Swagger不显示可选布尔查询参数的问题

你的问题出在自定义ParseOptionalBool管道上——Nest.js的Swagger模块无法自动识别自定义管道修饰的查询参数,需要手动通过@ApiQuery装饰器显式声明参数的Swagger元数据。

修改控制器代码

在findAll方法上添加@ApiQuery装饰器,明确参数的名称、类型、是否必填、默认值等信息:

import { ApiQuery } from '@nestjs/swagger';

// ...

@Get()
@ApiQuery({
  name: 'includeArtifacts',
  type: Boolean,
  required: false,
  default: false,
  description: '是否包含工件信息,默认值为false'
})
findAll(
  @Query('includeArtifacts', ParseOptionalBool)
  includeArtifacts = false,
) {
  return this.toursService.findAll({ includeArtifacts });
}

原理说明

默认情况下,Nest.js Swagger会自动识别内置管道(比如ParseBoolPipe)修饰的参数,但自定义管道没有内置的Swagger元数据映射。通过@ApiQuery装饰器,我们直接给Swagger模块提供该参数的完整描述,就能让参数在Swagger文档中正常显示。

内容的提问来源于stack exchange,提问作者Gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:54:50