go语言使用proto

亡命之徒 · · 2074 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

安装

  • go get -d -u github.com/golang/protobuf/protoc-gen-go
  • go install github.com/golang/protobuf/protoc-gen-go

定义proto文件

syntax = "proto3";

package model;

message SayParam {
    string msg = 1;
}

message Pair {
    int32 key = 1;
    string values = 2;
}

message SayResponse {
    string msg = 1;
    // 数组
    repeated string values = 2;
    // map
    map<string, Pair> header = 3;
    RespType type = 4;
}

enum RespType {
    NONE = 0;
    ASCEND = 1;
    DESCEND = 2;
}

// 服务接口
service Say {
    rpc Hello(SayParam) returns (SayResponse) {}
}

生成go代码

  • protoc --proto_path=/home/www/go/src --go_out=. /home/www/go/src/protoTest/common.proto
  • 其中的proto_path参数根据手册描述:

--proto_path=PATH Specify the directory in which to search for
imports. May be specified multiple times;
directories will be searched in order. If not
given, the current working directory is used.
If not found in any of the these directories,
the --descriptor_set_in descriptors will be
checked for required proto file.

  • 表示导入包的寻找路径
  • 命令的最后参数是proto文件路径

参考资料


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:亡命之徒

查看原文:go语言使用proto

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

2074 次点击  
加入收藏 微博
上一篇:Golang 爬虫
下一篇:Golang工具链
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传