2.1 注意事项

  • message 成员编写 编号 不能重复
  • message 可以嵌套
  • 数组 切片 使用 repeated 关键字
  • 联合体使用 oneof 关键字

2.3 内容编写

  1. // 设定标准
  2. syntax = "proto3";
  3. // 指定所在包名
  4. package pb;
  5. // 指定 go 文件所在包名
  6. option go_package ="../micro-1";
  7. enum Week{
  8. Monday = 0;
  9. Tuesday = 1;
  10. }
  11. // 消息体
  12. message Student{
  13. int32 age = 1;
  14. string name = 2;
  15. repeated int32 score = 4;
  16. Week w = 5;
  17. // 联合体
  18. oneof data{
  19. string teacher = 6;
  20. string class = 7;
  21. }
  22. }
  23. // 消息体可以嵌套
  24. message People{
  25. int32 weight = 1;
  26. }

2.3 编译

  1. protoc --go_out=./ *.proto

2.4 添加grpc服务

首先安装grpc插件

  1. go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
  1. // 设定标准
  2. syntax = "proto3";
  3. // 指定所在包名
  4. package pb;
  5. // 指定 go 文件所在包名
  6. option go_package ="../micro-1";
  7. enum Week{
  8. Monday = 0;
  9. Tuesday = 1;
  10. }
  11. // 消息体
  12. message Student{
  13. int32 age = 1;
  14. string name = 2;
  15. repeated int32 score = 4;
  16. Week w = 5;
  17. // 联合体
  18. oneof data{
  19. string teacher = 6;
  20. string class = 7;
  21. }
  22. }
  23. // 消息体可以嵌套
  24. message People{
  25. int32 weight = 1;
  26. }
  27. service hello{
  28. rpc HelloWorld(People) returns(Student);
  29. }

编译命令

  1. protoc --go-grpc_out=./ *.proto