golang版本。
1、基础软件
protoc: 支持序列化的高效、低占用软件。
protoc-gen-go: 支持go编译的插件。
2、脚手架
生成核心交互逻辑,当前版本,引自官网: https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code
protoc --proto_path=IMPORT_PATH --go_out=OUT_DIR --go_opt=paths=source_relative path/to/file.proto
解释:
proto_path或者-I :指定 import 路径,可以指定多个参数,编译时按顺序查找,不指定时默认查找当前目录。
proto 文件中也可以引入其他 .proto 文件,这里主要用于指定被引入文件的位置。
go_out:golang编译支持,指定输出文件路径
go_opt:指定参数,比如--go_opt=paths=source_relative就是表明生成文件输出使用相对路径。
path/to/file.proto :被编译的 .proto 文件放在最后面
file.proto内容
1 syntax = "proto3"; 2 3 //option go_package = "path;name"; 4 //path 表示生成的go文件的存放地址,会自动生成目录的。 5 //name 表示生成的go文件所属的包名 6 option go_package="./;proto"; 7 // 定义包名 8 package proto; 9 10 // 定义Greeter服务 11 service Greeter { 12 // 定义SayHello方法,接受HelloRequest消息, 并返回HelloReply消息 13 rpc SayHello (HelloRequest) returns (HelloReply) {} 14 } 15 16 // 定义HelloRequest消息 17 message HelloRequest { 18 // name字段 19 string name = 1; 20 } 21 22 // 定义HelloReply消息 23 message HelloReply { 24 // message字段 25 string message = 1; 26 }