feat:实现完整的API文档系统 #4

Merged
moyin merged 8 commits from feature/api-documentation-system into main 2025-12-17 15:23:21 +08:00
Showing only changes of commit ac92dcc67b - Show all commits

View File

@@ -1,9 +1,11 @@
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// 全局启用校验管道(核心配置)
app.useGlobalPipes(
new ValidationPipe({
@@ -12,8 +14,36 @@ async function bootstrap() {
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);
console.log('Pixel Game Server is running on http://localhost:3000');
console.log('API Documentation is available at http://localhost:3000/api-docs');
}
bootstrap();