https://github.com/grpc-ecosystem/grpc-gateway
按上图方式安装
GOPATH\pkg\mod\github.com\grpc-ecosystem\grpc-gateway\v2@v2.0.1\third_party\googleapis\google复制到server/product/下
server/product/product.proto
修改如下
syntax="proto3";
package services;
import "google/api/annotations.proto"; // 导入刚才复制的文件
option go_package = "../services;services"; // 前一个services指生成的go文件的存放目录,不存在会创建;后一个services是go文件的包名
message ProductRequest{
int32 product_id = 1;
}
message ProductRespones{
int32 product_stock = 1;
}
service ProductService{
rpc GetProductStock(ProductRequest) returns (ProductRespones){ // 有rpc则需要用protoc --go-grpc_out生成
option (google.api.http) = { // 有这个option则用protoc --grpc-gateway_out=需要生成.pb.gw.go
get: "/v1/prod/{product_id}" // 这里的{product_id}和message ProductRequest{int32 product_id = 1;} 是对应的,不能随意写,要和这个定义的名称一样
};
};
}
参考:https://www.cnblogs.com/hongjijun/p/13724738.html
# 进入server/product目录执行命令:
protoc --go_out=../services product.proto # 生成product.pb.go
protoc --go-grpc_out=../services product.proto # 生成product_grpc.pb.go
protoc --grpc-gateway_out=logtostderr=true:../services product.proto # 生成 product.pb.gw.go