# 规格:角色请求验证 ## 新增需求 ### 需求:Create 方法验证必填字段 RoleHandler.Create 方法必须验证 CreateRoleRequest 的所有必填字段。 #### 场景:缺少 role_name 返回验证错误 - **WHEN** 客户端发送 POST /api/admin/roles 请求,body 缺少 role_name 字段 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) - **AND** 错误消息提示 "参数验证失败" #### 场景:缺少 role_type 返回验证错误 - **WHEN** 客户端发送 POST /api/admin/roles 请求,body 缺少 role_type 字段 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) #### 场景:role_name 过长返回验证错误 - **WHEN** 客户端发送 POST /api/admin/roles 请求,role_name 超过 50 个字符 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) ### 需求:Update 方法验证字段格式 RoleHandler.Update 方法必须验证 UpdateRoleRequest 的字段格式。 #### 场景:role_name 过长返回验证错误 - **WHEN** 客户端发送 PUT /api/admin/roles/:id 请求,role_name 超过 50 个字符 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) #### 场景:status 值非法返回验证错误 - **WHEN** 客户端发送 PUT /api/admin/roles/:id 请求,status 值不是 0 或 1 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) ### 需求:AssignPermissions 方法验证权限ID列表 RoleHandler.AssignPermissions 方法必须验证权限ID列表不为空。 #### 场景:perm_ids 为空数组返回验证错误 - **WHEN** 客户端发送 POST /api/admin/roles/:id/permissions 请求,perm_ids 为空数组 [] - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) ### 需求:UpdateStatus 方法验证状态值 RoleHandler.UpdateStatus 方法必须验证状态值在有效范围内。 #### 场景:status 值非法返回验证错误 - **WHEN** 客户端发送 PUT /api/admin/roles/:id/status 请求,status 值不是 0 或 1 - **THEN** 返回 HTTP 400 - **AND** 响应包含错误码(CodeInvalidParam) ## 测试要求 - 取消 tests/integration/role_test.go 中的 TODO 跳过(第 51 行) - 验证测试能够通过,证明验证逻辑正常工作