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

NestJS如何修改OpenAPI(Swagger)文档Schema中显示的DTO名称

NestJS Swagger 自定义DTO文档展示名称方案

该需求可直接通过NestJS Swagger原生装饰器实现,无需修改DTO原有类名,不会和项目内已存在的同名类产生冲突。

实现方式

使用@nestjs/swagger包提供的@ApiSchema类装饰器,通过name参数直接指定该DTO在OpenAPI文档中展示的Schema名称即可:

import { ApiSchema, ApiProperty } from '@nestjs/swagger';

// 类名保持UserDto不变,项目内原有引用逻辑不需要任何修改
@ApiSchema({ name: 'User' })
export class UserDto {
  @ApiProperty({ description: '用户ID' })
  id: number;

  @ApiProperty({ description: '用户名' })
  username: string;

  // 其余DTO属性定义
}

效果说明

配置完成后重启服务,以下位置的命名都会统一替换为你指定的User:

  • Swagger文档Schemas板块的模型名称
  • 所有接口请求体、响应体中引用该DTO的类型展示
  • OpenAPI导出的json/yaml规范文件中对应的模型定义

注意事项

  • OpenAPI规范要求Schema名称全局唯一,请确保你配置的展示名称没有被其他DTO/模型的@ApiSchema配置占用
  • 该装饰器仅修改文档层面的展示名称,完全不影响项目运行时代码的逻辑,不会和你项目中已存在的User类产生命名冲突

Swagger命名问题示例截图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:18:04