service.proto 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. syntax = "proto3";
  2. package live.livedemo;
  3. option go_package = "livedemo";
  4. import "github.com/gogo/protobuf/gogoproto/gogo.proto";
  5. // Foo 相关服务
  6. service Foo {
  7. // 根据uid得到uname
  8. // `method:"post" midware:"auth,verify"`
  9. //
  10. // 这是详细说明
  11. rpc uname_by_uid (Bar1Req) returns (Bar1Resp);
  12. // 获取房间信息
  13. // `midware:"guest"`
  14. rpc get_info (GetInfoReq) returns (GetInfoResp);
  15. // 根据uid得到uname v3
  16. rpc uname_by_uid3 (Bar1Req) returns (Bar1Resp);
  17. // test comment
  18. // `internal:"true"`
  19. rpc uname_by_uid4 (Bar1Req) returns (Bar1Resp);
  20. // `dynamic_resp:"true"`
  21. rpc get_dynamic (Bar1Req) returns (Bar1Resp);
  22. // `dynamic:"true"`
  23. rpc nointerface (Bar1Req) returns (Bar1Resp);
  24. }
  25. service Foo2 {
  26. rpc hello (Bar1Req) returns (Bar1Resp);
  27. }
  28. // Bar请求
  29. message Bar1Req {
  30. // 用户uid
  31. int32 uid = 1 [(gogoproto.moretags) = 'form:"uid"'];
  32. }
  33. // Bar 相应
  34. message Bar1Resp {
  35. // 用户名
  36. // `mock:"hello"`
  37. string uname = 2 [(gogoproto.jsontag) = "uname"];
  38. // idshaha
  39. // `mock:"343242"`
  40. repeated int32 ids = 3 [(gogoproto.jsontag) = "ids"];
  41. repeated List list = 4 [(gogoproto.jsontag) = "list"];
  42. List alist = 5 [(gogoproto.jsontag) = "alist"];
  43. message List {
  44. // `mock:"\"withquote"`
  45. string hello = 1 [(gogoproto.jsontag) = "hello"];
  46. string world = 2 [(gogoproto.jsontag) = "world"];
  47. }
  48. map<string, List> amap = 6 [(gogoproto.jsontag) = "amap"];
  49. }
  50. // 获取房间信息请求
  51. message GetInfoReq {
  52. // 房间id
  53. // `mock:"123"
  54. int64 room_id = 1 [(gogoproto.moretags) = 'form:"room_id" validate:"required"'];
  55. repeated int64 many_ids = 2 [(gogoproto.moretags) = 'form:"many_ids"'];
  56. }
  57. // 获取房间信息响应
  58. message GetInfoResp {
  59. // 房间id 注释貌似只有放在前面才能被识别,放到字段声明后面是没用的
  60. int64 roomid = 1 [(gogoproto.jsontag) = "roomid"]; // 这段注释不会被理会
  61. // 用户名
  62. string uname = 2 [(gogoproto.jsontag) = "uname"];
  63. // 开播时间
  64. string live_time = 3 [(gogoproto.jsontag) = "live_time,omitempty"];
  65. map<int32, string> amap = 4 [(gogoproto.jsontag) = "amap"];
  66. // `mock:"6.02214129e23"`
  67. float rate = 5 [(gogoproto.jsontag) = "rate"];
  68. // 用户mid
  69. int64 mid = 6 [(gogoproto.jsontag) = "mid"];
  70. }