topfans/backend/proto/Proto定义完整性检查文档.md
2026-04-07 22:29:48 +08:00

5.6 KiB
Raw Permalink Blame History

Proto定义完整性检查

一、开发功能顺序文档中的Service层需求

根据 开发功能顺序.mdUserService用户与认证服务包含以下Service层

3.1 认证ServiceAuthService

  • Register
  • Login
  • Logout
  • RefreshToken
  • ValidateToken

4.1 用户信息ServiceUserService

  • GetUser
  • GetFanProfile
  • GetMyProfile对应GetProfile
  • UpdateNickname
  • UpdatePassword对应ChangePassword

4.2 粉丝身份ServiceIdentityService

  • GetFanIdentities已添加keyword参数支持搜索
  • AddIdentity
  • SwitchIdentity

二、Proto定义完整性总结

已完整覆盖所有Service层需求

1. 认证Service3.1- 完整

所有5个方法都已定义proto消息和RPC

  • RegisterRequest / RegisterResponse
  • LoginRequest / LoginResponse
  • LogoutRequest / LogoutResponse
  • RefreshTokenRequest / RefreshTokenResponse
  • ValidateTokenRequest / ValidateTokenResponse

2. 用户信息Service4.1- 完整

所有5个方法都已定义proto消息和RPC

  • GetUserRequest / GetUserResponse
  • GetFanProfileRequest / GetFanProfileResponse
  • GetMyProfileRequest / GetMyProfileResponse对应GetProfile
  • UpdateNicknameRequest / UpdateNicknameResponse
  • UpdatePasswordRequest / UpdatePasswordResponse

3. 粉丝身份Service4.2- 完整

所有3个方法都已定义proto消息和RPC

  • GetFanIdentitiesRequest / GetFanIdentitiesResponse已添加keyword字段
  • AddIdentityRequest / AddIdentityResponse
  • SwitchIdentityRequest / SwitchIdentityResponse

三、Service接口与Proto对应关系

3.1 认证Service接口映射

Service方法 Proto RPC Request Response
Register(req) rpc Register RegisterRequest RegisterResponse
Login(req) rpc Login LoginRequest LoginResponse
Logout(req) rpc Logout LogoutRequest LogoutResponse
RefreshToken(req) rpc RefreshToken RefreshTokenRequest RefreshTokenResponse
ValidateToken(req) rpc ValidateToken ValidateTokenRequest ValidateTokenResponse

3.2 用户信息Service接口映射

Service方法 Proto RPC Request Response
GetUser(userID) rpc GetUser GetUserRequest GetUserResponse
GetFanProfile(userID, starID) rpc GetFanProfile GetFanProfileRequest GetFanProfileResponse
GetProfile(userID, starID) rpc GetMyProfile GetMyProfileRequest GetMyProfileResponse
UpdateNickname(...) rpc UpdateNickname UpdateNicknameRequest UpdateNicknameResponse
ChangePassword(...) rpc UpdatePassword UpdatePasswordRequest UpdatePasswordResponse

注意

  • GetProfile 使用 GetMyProfile通常获取当前登录用户信息从Token中获取user_id和star_id
  • ChangePassword 使用 UpdatePassword

3.3 粉丝身份Service接口映射

Service方法 Proto RPC Request Response
GetAvailableIdentities(keyword) rpc GetFanIdentities GetFanIdentitiesRequest GetFanIdentitiesResponse
AddIdentity(userID, starID) rpc AddIdentity AddIdentityRequest AddIdentityResponse
SwitchIdentity(...) rpc SwitchIdentity SwitchIdentityRequest SwitchIdentityResponse

注意

  • GetAvailableIdentitieskeyword参数已添加到GetFanIdentitiesRequest.keyword
  • AddIdentitySwitchIdentity的参数会通过Token获取user_id或通过请求参数传递

四、答案总结

问题除了用户信息Service还有其他Service需要进行proto编写吗

答案 没有所有Service的proto定义已完整

在UserService用户与认证服务的开发功能顺序文档中定义了3个Service层

  1. 认证Service3.1 - proto定义完整
  2. 用户信息Service4.1 - proto定义完整
  3. 粉丝身份Service4.2 - proto定义完整已添加keyword参数

所有Service层的接口都已定义了对应的proto消息类型和RPC方法。

五、注意事项

5.1 Service接口与Proto的差异

有些Service接口的参数和proto定义略有不同这是正常的

  1. Token参数Service接口可能接收token字符串但proto通常从Token中解析获取user_id和star_id
  2. 方法名Service接口可能使用GetProfile但proto使用GetMyProfile(更明确)
  3. 参数传递Service接口可能直接传递userID/starID但proto可能通过Token获取

这些差异需要在Handler层进行适配将proto请求转换为Service层的调用参数。

5.2 后续其他微服务的Proto

虽然当前UserService的proto已完整但整个微服务架构中还有其他服务

  • Asset Service - 资产服务(后续开发)
  • Social Service - 社交服务(后续开发)
  • Gallery Service - 展馆服务(后续开发)
  • Task Service - 任务服务(后续开发)

这些服务的proto定义会在各自服务开发时再创建。

六、验证清单

  • 认证Service所有接口已定义proto
  • 用户信息Service所有接口已定义proto
  • 粉丝身份Service所有接口已定义proto
  • GetFanIdentities已添加keyword参数
  • 所有proto消息类型与Service接口匹配
  • 所有RPC方法已定义并映射到REST API

七、结论

当前UserService的所有Service层proto定义已完整可以开始开发Service层代码