# Zulip Gateway Module

## 📋 模块概述

Zulip网关模块，负责提供Zulip相关功能的HTTP API接口。

## 🏗️ 架构定位

- **层级**: Gateway层（网关层）
- **职责**: HTTP协议处理、API接口暴露、请求验证
- **依赖**: Business层的ZulipModule

## 📁 文件结构

```
src/gateway/zulip/
├── dynamic_config.controller.ts          # 动态配置管理API
├── websocket_docs.controller.ts          # WebSocket文档API
├── websocket_openapi.controller.ts       # WebSocket OpenAPI规范
├── websocket_test.controller.ts          # WebSocket测试工具
├── zulip_accounts.controller.ts          # Zulip账号管理API
├── zulip.gateway.module.ts               # 网关模块定义
└── README.md                             # 本文档
```

## 🎯 主要功能

### 1. 动态配置管理 (DynamicConfigController)
- 获取当前配置
- 同步远程配置
- 配置状态查询
- 备份管理

### 2. WebSocket文档 (WebSocketDocsController)
- 提供WebSocket API使用文档
- 消息格式示例
- 连接示例代码

### 3. WebSocket OpenAPI (WebSocketOpenApiController)
- 在Swagger中展示WebSocket接口
- 提供测试工具推荐
- 架构信息展示

### 4. WebSocket测试工具 (WebSocketTestController)
- 交互式WebSocket测试页面
- 支持连接、认证、消息发送测试
- API调用监控功能

### 5. Zulip账号管理 (ZulipAccountsController)
- Zulip账号关联CRUD操作
- 账号验证和统计
- 批量管理功能

## 🔗 依赖关系

```
ZulipGatewayModule
  ├─ imports: ZulipModule (Business层)
  ├─ imports: AuthModule (Business层)
  └─ controllers: [所有Controller]
```

## 📝 使用示例

### 在AppModule中导入

```typescript
import { ZulipGatewayModule } from './gateway/zulip/zulip.gateway.module';

@Module({
  imports: [
    // ... 其他模块
    ZulipGatewayModule,
  ],
})
export class AppModule {}
```

## 🚨 架构规范

### Gateway层职责
- ✅ HTTP协议处理
- ✅ 请求参数验证（DTO）
- ✅ 调用Business层服务
- ✅ 响应格式转换
- ✅ 错误处理和转换

### Gateway层禁止
- ❌ 包含业务逻辑
- ❌ 直接访问数据库
- ❌ 直接调用Core层（应通过Business层）
- ❌ 包含复杂的业务规则

## 📚 相关文档

- [架构文档](../../docs/ARCHITECTURE.md)
- [Zulip Business模块](../../business/zulip/README.md)
- [开发指南](../../docs/development/backend_development_guide.md)

## 🔄 最近更新

- 2026-01-14: 架构优化 - 从Business层分离Controller到Gateway层 (moyin)

## 👥 维护者

- moyin
