gRPC 调试
gRPC 入口
Section titled “gRPC 入口”SyncTV 的公开 gRPC 和 HTTP REST 共用 server.port,默认是 8080。
默认配置中 server.enable_reflection=true,开发环境可以直接用 grpcurl 探索服务。生产环境建议显式关闭 reflection,改用仓库内 protobuf 文件调试。
使用 grpcurl
Section titled “使用 grpcurl”启动服务:
SYNCTV_SERVER_ENABLE_REFLECTION=true \cargo run -p synctv --bin synctv -- serve列出服务:
grpcurl -plaintext localhost:8080 listgrpcurl -plaintext localhost:8080 list synctv.client.AuthService公开客户端服务包括 synctv.client.AuthService、UserService、RoomService、PublicService、EmailService、NotificationService 和 OAuth2Service。管理员 gRPC 服务是 synctv.admin.AdminService。management gRPC 是独立端点,服务名是 synctv.management.ManagementService,不在 server.port 上。
不依赖 reflection,直接使用仓库内 proto:
grpcurl -plaintext \ -import-path synctv-proto \ -proto proto/client.proto \ localhost:8080 \ synctv.client.AuthService/Login-plaintext 只适合本地开发或可信内网。生产环境应在反向代理或客户端连接层使用 TLS。
grpcurl -plaintext -d '{ "username": "alice", "email": "alice@example.com", "password": "securepassword123"}' localhost:8080 synctv.client.AuthService/Registergrpcurl -plaintext -d '{ "username": "alice", "password": "securepassword123"}' localhost:8080 synctv.client.AuthService/Login和 OpenAPI 的关系
Section titled “和 OpenAPI 的关系”OpenAPI 只描述 HTTP API。gRPC 调试使用 reflection 或 protobuf 文件。HTTP API 的 Swagger UI 和 OpenAPI JSON 获取方式见 OpenAPI 文档入口。