From 003091494f50e70d790aba177502e41a74ac7713 Mon Sep 17 00:00:00 2001 From: moyin <244344649@qq.com> Date: Wed, 7 Jan 2026 15:07:01 +0800 Subject: [PATCH] =?UTF-8?q?docs=EF=BC=9A=E5=8D=87=E7=BA=A7=20OpenAPI=20?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E9=85=8D=E7=BD=AE=E5=88=B0=20v2.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 版本号从 1.1.1 升级到 2.0.0 - 新增聊天系统 (chat) API 标签和说明 - 完善 API 文档描述,包含 WebSocket 连接指南 - 添加 JWT Token 格式要求说明 - 新增开发环境和生产环境服务器配置 - 包含 Zulip 集成和地图系统说明 --- src/main.ts | 58 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index e12ee89..c7d70a9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -65,10 +65,58 @@ async function bootstrap() { // 配置Swagger文档 const config = new DocumentBuilder() .setTitle('Pixel Game Server API') - .setDescription('像素游戏服务器API文档 - 包含用户认证、登录注册、验证码登录、邮箱冲突检测等功能') - .setVersion('1.1.1') - .addTag('auth', '用户认证相关接口') - .addTag('admin', '管理员后台相关接口') + .setDescription(` +像素游戏服务器API文档 - 包含用户认证、聊天系统、Zulip集成等功能 + +## 主要功能模块 + +### 🔐 用户认证 (auth) +- 用户注册、登录 +- JWT Token 管理 +- 邮箱验证和密码重置 +- 验证码登录 + +### 💬 聊天系统 (chat) +- WebSocket 实时聊天 +- 聊天历史记录 +- 系统状态监控 +- Zulip 集成状态 + +### 👑 管理员后台 (admin) +- 用户管理 +- 系统监控 +- 日志查看 + +## WebSocket 连接 + +游戏聊天功能主要通过 WebSocket 实现: + +**连接地址**: \`ws://localhost:3000/game\` + +**支持的事件**: +- \`login\`: 用户登录(需要 JWT Token) +- \`chat\`: 发送聊天消息 +- \`position_update\`: 位置更新 + +**JWT Token 要求**: +- issuer: \`whale-town\` +- audience: \`whale-town-users\` +- type: \`access\` +- 必需字段: \`sub\`, \`username\`, \`email\`, \`role\` + +## Zulip 集成 + +系统集成了 Zulip 聊天服务,实现游戏内聊天与 Zulip 社群的双向同步。 + +**支持的地图**: +- Whale Port (鲸鱼港) +- Pumpkin Valley (南瓜谷) +- Novice Village (新手村) + `) + .setVersion('2.0.0') + .addTag('auth', '🔐 用户认证相关接口') + .addTag('chat', '💬 聊天系统相关接口') + .addTag('admin', '👑 管理员后台相关接口') .addBearerAuth( { type: 'http', @@ -80,6 +128,8 @@ async function bootstrap() { }, 'JWT-auth', ) + .addServer('http://localhost:3000', '开发环境') + .addServer('https://whaletownend.xinghangee.icu', '生产环境') .build(); const document = SwaggerModule.createDocument(app, config);