修复问题: - ZulipModule:修正exports配置,导出ZulipCoreModule而非单独服务 - ZulipModule:添加CacheModule.register()解决CACHE_MANAGER依赖 - ZulipGatewayModule:添加LoginCoreModule解决JwtAuthGuard依赖 文档补充(step4-architecture-layer.md): - 新增「应用启动验证」强制检查步骤 - 添加常见启动错误示例和修复方案 - 明确启动验证是步骤4的强制完成条件 - 补充启动验证检查清单和失败处理流程
59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
/**
|
||
* Zulip网关模块
|
||
*
|
||
* 功能描述:
|
||
* - 提供Zulip相关的HTTP API接口
|
||
* - 提供WebSocket测试和文档功能
|
||
* - 提供动态配置管理接口
|
||
* - 提供Zulip账号管理接口
|
||
*
|
||
* 架构说明:
|
||
* - Gateway层:负责HTTP协议处理和API接口暴露
|
||
* - 依赖Business层:调用ZulipModule提供的业务服务
|
||
* - 职责分离:只做协议转换,不包含业务逻辑
|
||
*
|
||
* 最近修改:
|
||
* - 2026-01-14: 架构优化 - 从Business层分离Controller到Gateway层,符合四层架构规范 (修改者: moyin)
|
||
*
|
||
* @author moyin
|
||
* @version 1.0.0
|
||
* @since 2026-01-14
|
||
* @lastModified 2026-01-14
|
||
*/
|
||
|
||
import { Module } from '@nestjs/common';
|
||
// Gateway层控制器
|
||
import { DynamicConfigController } from './dynamic_config.controller';
|
||
import { WebSocketDocsController } from './websocket_docs.controller';
|
||
import { WebSocketOpenApiController } from './websocket_openapi.controller';
|
||
import { WebSocketTestController } from './websocket_test.controller';
|
||
import { ZulipAccountsController } from './zulip_accounts.controller';
|
||
// 依赖Business层模块
|
||
import { ZulipModule } from '../../business/zulip/zulip.module';
|
||
import { AuthModule } from '../../business/auth/auth.module';
|
||
import { LoginCoreModule } from '../../core/login_core/login_core.module';
|
||
|
||
@Module({
|
||
imports: [
|
||
// 导入Business层的Zulip模块
|
||
ZulipModule,
|
||
// 导入认证模块(用于JwtAuthGuard)
|
||
AuthModule,
|
||
// 导入登录核心模块(JwtAuthGuard依赖)
|
||
LoginCoreModule,
|
||
],
|
||
controllers: [
|
||
// 动态配置管理控制器
|
||
DynamicConfigController,
|
||
// WebSocket API文档控制器
|
||
WebSocketDocsController,
|
||
// WebSocket OpenAPI规范控制器
|
||
WebSocketOpenApiController,
|
||
// WebSocket测试工具控制器
|
||
WebSocketTestController,
|
||
// Zulip账号关联管理控制器
|
||
ZulipAccountsController,
|
||
],
|
||
})
|
||
export class ZulipGatewayModule {}
|