config:配置Swagger API文档系统

- 在main.ts中集成Swagger UI
- 配置API文档基本信息和JWT认证
- 设置文档访问路径为/api-docs
This commit is contained in:
moyin
2025-12-17 15:15:14 +08:00
parent fb8d166f00
commit ac92dcc67b

View File

@@ -1,9 +1,11 @@
import { NestFactory } from '@nestjs/core'; import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module'; import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common'; import { ValidationPipe } from '@nestjs/common';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule); const app = await NestFactory.create(AppModule);
// 全局启用校验管道(核心配置) // 全局启用校验管道(核心配置)
app.useGlobalPipes( app.useGlobalPipes(
new ValidationPipe({ new ValidationPipe({
@@ -12,8 +14,36 @@ async function bootstrap() {
transform: true, // 自动把入参转为 DTO 对应的类型(比如前端传的字符串数字 `'1'` 转为数字 `1` transform: true, // 自动把入参转为 DTO 对应的类型(比如前端传的字符串数字 `'1'` 转为数字 `1`
}), }),
); );
// 配置Swagger文档
const config = new DocumentBuilder()
.setTitle('Pixel Game Server API')
.setDescription('像素游戏服务器API文档 - 包含用户认证、登录注册等功能')
.setVersion('1.0.0')
.addTag('auth', '用户认证相关接口')
.addBearerAuth(
{
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT',
name: 'JWT',
description: '请输入JWT token',
in: 'header',
},
'JWT-auth',
)
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api-docs', app, document, {
swaggerOptions: {
persistAuthorization: true,
},
});
await app.listen(3000); await app.listen(3000);
console.log('Pixel Game Server is running on http://localhost:3000'); console.log('Pixel Game Server is running on http://localhost:3000');
console.log('API Documentation is available at http://localhost:3000/api-docs');
} }
bootstrap(); bootstrap();