windows10 家庭版;go 1.18.1;protoc 3.20.1;goland编辑器
1 安装
1.1 下载protoc buffer解压,将protoc.exe 放在go语言安装目录的bin目录下
protocol buffer下载地址(protoc-3.20.1-win64.zip):
Releases · protocolbuffers/protobuf · GitHub
1.2 命令行检查protoc是否正确安装,可以看到输入命令回车后显示版本号
protoc --version
网上其它文章有说到设置环境变量的,如果是放到go的bin目录,而且是比较新版本的go,环境变量都是自动设置了的。
设置》系统》关于》高级系统设置》高级》环境变量》系统变量》path;查看一下是否设置了go环境变量
1.3 下载go 插件
并且把插件的exe文件也放到go的bin目录。实际上我的插件文件被下载到了windows用户目录下的个人电脑名称目录下的go文件夹,可能是新版本的go是这样处理插件包的。我根据其它博客文章的操作,把那些文件又拷贝到go的安装目录的bin目录下。 两边都有。
go install google.golang.org/protobuf/cmd/protoc-gen-go
go install go-micro.dev/v4/cmd/protoc-gen-micro@v4
这些也全都下载了,我是初学者,反正先下载了再说
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
插件地址可能更新,因此这里的也可能失效,找最新的就行了
2. 使用
2.1 写好proto文件
syntax = "proto3";
package showproto; //这里容易踩坑
option go_package="./;showproto"; //这里容易踩坑
service Product {
rpc AddProduct(ProductInfo) returns (ResponseProduct) {}
}
message ProductInfo {
int64 id = 1;
string product_name = 2;
}
message ResponseProduct {
int64 product_id = 1;
}
踩坑:
2.2 开始执行
我用的goland编辑器
目录结构
protoc --go_out=. --go_opt=paths=source_relative --micro_out=. --micro_opt=paths=source_relative product.proto
本文还参考了:
基于知名微服务框架go-micro开发gRPC应用程序 - 知乎
go protobuf安装与使用_sweey_lff的博客-CSDN博客_go 安装protobuf
golang安装protobuf 2022最新安装教程(windows)_上进的我的博客-CSDN博客_golang 安装proto