如何在Nest.js中启用classValidatorShim与introspectComments?
启用introspectComments和classValidatorShim的配置位置
这两个配置项是在NestJS Swagger模块的文档生成环节设置的,有两种常用配置方式:
方式一:在启动文件(main.ts)中配置
在调用SwaggerModule.createDocument方法时,通过第二个参数的扩展选项添加:
import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); const swaggerConfig = new DocumentBuilder() .setTitle('你的API名称') .setDescription('API功能描述') .setVersion('1.0') .build(); // 核心配置位置 const apiDocument = SwaggerModule.createDocument(app, swaggerConfig, { introspectComments: true, // 启用代码注释解析 classValidatorShim: true, // 启用class-validator规则映射 }); SwaggerModule.setup('api-docs', app, apiDocument); await app.listen(3000); } bootstrap();
方式二:在nest-cli.json中通过CLI插件配置
如果使用NestJS CLI的Swagger插件,可直接在配置文件中添加:
{ "collection": "@nestjs/schematics", "sourceRoot": "src", "compilerOptions": { "plugins": [ { "name": "@nestjs/swagger", "options": { "introspectComments": true, "classValidatorShim": true } } ] } }
这两个配置的作用:
introspectComments:让Swagger解析代码中的JSDoc注释,自动补充API文档的描述信息classValidatorShim:将class-validator的校验装饰器(如@IsString())映射为Swagger的接口校验规则
内容的提问来源于stack exchange,提问作者alex44_lel
相关产品推荐
相关产品推荐

