随笔 - 173,  文章 - 0,  评论 - 0,  阅读 - 10万

golang版本。

1、基础软件

  protoc: 支持序列化的高效、低占用软件。

  protoc-gen-go: 支持go编译的插件。

2、脚手架

  生成核心交互逻辑,当前版本,引自官网: https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code (备注: 重点参考官网)

  以下,为 1.47.0 之前的版本。

protoc --proto_path=IMPORT_PATH  --go_out=OUT_DIR  --go_opt=paths=source_relative path/to/file.proto

  新版编辑: 2023-02-10

  以下,为

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    helloworld/helloworld.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 }
复制代码

 

posted on   黑熊一只  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2017-06-28 对于技术与自身现在的理解
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示