4.5 KiB
4.5 KiB
Controller层重构总结
重构概述
本次重构主要完成了以下工作:
- 创建统一的request和response包结构
- 建立全局异常处理机制
- 重构所有Controller层代码
- 优化接口入参和出参规范
完成的工作
1. 创建统一的基础类
在emotion-common模块中创建:
BaseRequest- 基础请求类,包含通用字段如requestId、clientIp、userAgent等BaseResponse- 基础响应类,包含通用字段如timestamp、requestId、processingTime等BasePageRequest- 基础分页请求类,继承BaseRequest,包含分页参数BasePageResponse- 基础分页响应类,继承BaseResponse,包含分页信息
异常处理类:
BusinessException- 业务异常AuthException- 认证异常CaptchaException- 验证码异常TokenException- Token异常GlobalExceptionHandler- 全局异常处理器
2. 各模块request和response类
emotion-ai模块:
-
Request类:
AiChatRequest- AI聊天请求CreateConversationRequest- 创建会话请求EmotionAnalysisRequest- 情绪分析请求GuestChatRequest- 访客聊天请求ConversationListRequest- 会话列表请求
-
Response类:
AiChatResponse- AI聊天响应CreateConversationResponse- 创建会话响应EmotionAnalysisResponse- 情绪分析响应GuestChatResponse- 访客聊天响应ConversationListResponse- 会话列表响应
emotion-auth模块:
-
Request类:
LoginRequest- 登录请求RegisterRequest- 注册请求OAuthLoginRequest- 第三方登录请求SliderCaptchaVerifyRequest- 滑块验证码验证请求
-
Response类:
LoginResponse- 登录响应UserInfoResponse- 用户信息响应CaptchaResponse- 验证码响应SliderCaptchaResponse- 滑块验证码响应
emotion-user模块:
-
Request类:
UserUpdateRequest- 用户更新请求
-
Response类:
UserInfoResponse- 用户信息响应
emotion-record模块:
-
Request类:
CreateEmotionRecordRequest- 创建情绪记录请求
-
Response类:
EmotionRecordResponse- 情绪记录响应
3. Controller层重构
重构原则:
- 移除业务逻辑 - 所有业务逻辑移至Service层
- 统一入参出参 - 使用新的request/response格式
- 移除try-catch - 使用全局异常处理机制
- 统一返回格式 - 使用Result包装返回结果
已重构的Controller:
AiChatController- AI聊天控制器GuestChatController- 访客聊天控制器AuthController- 认证控制器CaptchaController- 验证码控制器UserController- 用户控制器
4. 全局异常处理
异常处理机制:
- 统一异常处理器
GlobalExceptionHandler - 支持多种异常类型处理
- 自动参数校验异常处理
- 统一错误响应格式
支持的异常类型:
- 业务异常
BusinessException - 认证异常
AuthException - 验证码异常
CaptchaException - Token异常
TokenException - 参数校验异常
MethodArgumentNotValidException - 系统异常
RuntimeException、Exception
代码规范
1. 命名规范
- Request类以
Request结尾 - Response类以
Response结尾 - 包名使用
request和response
2. 继承关系
- 所有Request类继承
BaseRequest或BasePageRequest - 所有Response类继承
BaseResponse或BasePageResponse
3. 注解规范
- 使用
@Schema注解描述字段 - 使用
@Valid注解进行参数校验 - 使用
@NotBlank、@NotNull等校验注解
4. Controller规范
- 不包含业务逻辑
- 统一使用Result包装返回结果
- 不使用try-catch,依赖全局异常处理
- 接口文档完整
优势
- 代码结构清晰 - 职责分离明确
- 异常处理统一 - 全局异常处理机制
- 接口规范统一 - 统一的入参出参格式
- 维护性提升 - 代码更易维护和扩展
- 开发效率提升 - 减少重复代码
后续工作
- Service层接口更新 - 确保Service层使用新的request/response格式
- 单元测试编写 - 为重构后的代码编写测试用例
- 接口文档更新 - 更新API文档
- 性能测试 - 验证重构后的性能表现
注意事项
- 所有Controller层不再包含业务逻辑
- 异常处理统一由GlobalExceptionHandler处理
- 新的request/response类需要在Service层中使用
- 需要更新相关的单元测试和集成测试