forked from datawhale/whale-town-end
config:配置Swagger API文档系统
- 在main.ts中集成Swagger UI - 配置API文档基本信息和JWT认证 - 设置文档访问路径为/api-docs
This commit is contained in:
30
src/main.ts
30
src/main.ts
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user