Swagger + Nest.js 不会删除空的 DTO 和模型

dok*_*han 4 swagger swagger-ui nestjs

我正在Nest.js使用Swagger. 问题是我从这个 DTO 或模型中删除了文档,在 swagger UI 文档中我可以将其视为空对象。

例如:

import { IsNotEmpty } from 'class-validator';

export class PostDto {
  @IsNotEmpty()
  readonly title: string;

  @IsNotEmpty()
  readonly content: string;

  @IsNotEmpty()
  readonly description: string;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另外,我试图使用隐身模式重新安装来更改该实体的名称node_modules,但它不起作用。如果我更改该实体的名称,它也会更改。怎么了?

我想做的是删除这个文档装饰器,而不是看到那些空对象。

she*_*nku 5

@nestjs/swagger 提供了一个 CLI 插件,它将使用反射自动添加注释。

这意味着您不再需要使用@ApiProperty()等单独注释每个属性。

该插件是选择加入的,默认情况下不活动。

在您的nest-cli.json添加中:

{
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "plugins": ["@nestjs/swagger"]
  }
}
Run Code Online (Sandbox Code Playgroud)

您还可以更改默认选项:

"plugins": [
  {
    "name": "@nestjs/swagger",
    "options": {
      "classValidatorShim": false,
      "introspectComments": true
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.nestjs.com/openapi/cli-plugin

故障排除:如果您在开发模式下运行,可能需要停止/启动。