跳转到内容

gRPC 调试

SyncTV 的公开 gRPC 和 HTTP REST 共用 server.port,默认是 8080

默认配置中 server.enable_reflection=true,开发环境可以直接用 grpcurl 探索服务。生产环境建议显式关闭 reflection,改用仓库内 protobuf 文件调试。

启动服务:

Terminal window
SYNCTV_SERVER_ENABLE_REFLECTION=true \
cargo run -p synctv --bin synctv -- serve

列出服务:

Terminal window
grpcurl -plaintext localhost:8080 list
grpcurl -plaintext localhost:8080 list synctv.client.AuthService

公开客户端服务包括 synctv.client.AuthServiceUserServiceRoomServicePublicServiceEmailServiceNotificationServiceOAuth2Service。管理员 gRPC 服务是 synctv.admin.AdminService。management gRPC 是独立端点,服务名是 synctv.management.ManagementService,不在 server.port 上。

-plaintext 只适合本地开发或可信内网。生产环境应在反向代理或客户端连接层使用 TLS。

Terminal window
grpcurl -plaintext -d '{
"username": "alice",
"email": "alice@example.com",
"password": "securepassword123"
}' localhost:8080 synctv.client.AuthService/Register
Terminal window
grpcurl -plaintext -d '{
"username": "alice",
"password": "securepassword123"
}' localhost:8080 synctv.client.AuthService/Login

OpenAPI 只描述 HTTP API。gRPC 调试使用 reflection 或 protobuf 文件。HTTP API 的 Swagger UI 和 OpenAPI JSON 获取方式见 OpenAPI 文档入口