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

如何在Nest.js中为请求体添加描述且保留类型反射?

解决Nest.js请求体添加描述且保留Schema结构的问题

直接用@ApiBody结合getSchemaRef就能搞定,既保留TheBody类生成的Schema,又能加请求体描述,具体步骤如下:

  1. 导入所需的Swagger工具函数
import { ApiBody, getSchemaRef } from '@nestjs/swagger';
  1. 在控制器方法上配置@ApiBody
@Post('/your-api-path')
@ApiBody({
  description: '替换成你的请求体描述内容,比如"创建资源所需的参数集合"',
  schema: getSchemaRef(TheBody, {
    // 可选:如果需要强制要求请求体必填,加这个配置
    required: true,
  }),
})
async handleRequest(@Body() body: TheBody) {
  // 业务逻辑代码
}

原理说明

getSchemaRef会自动读取TheBody类上通过@ApiProperty等Swagger装饰器定义的字段结构,不会像直接写schema: { type: 'string' }那样覆盖原有Schema。这样既保留了@Body带来的类型反射能力,又能给整个请求体添加描述。

如果是要给单个字段加描述,直接在TheBody的属性上用@ApiProperty({ description: '单个字段的描述' })就可以,和上面的方法不冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:20:54