[go-micro实战]9 引入protobuf、生成参数和模型

models/protos/prod.proto

syntax = "proto3";
package models;

option go_package = "想要存放proto.pb.go和proto.pb.micro.go的目录";
message ProdModel {
  int32 ProdID = 1;
  string ProdName = 2;
}

message ProdRequest {
  int32 size = 1;
}

message ProdListResponse {
  repeated ProdModel data = 1;
}

终端输入(需先go get github.com/micro/protoc-gen-micro,并生成protoc-gen-micro.exe放入工作目录的bin下)

protoc --go_out=.. --go_opt=paths=source_relative prod.proto


protoc --micro_out=.. --micro_opt=paths=source_relative prod.proto

在models目录下分别生成prod.pb.go和 prod.pb.micro.go

 修改consul_test.go

func callAPI2(s selector.Selector) {
	microClient := microHttp.NewClient(
		client.Selector(s),
		client.ContentType("application/json"),
	)
	req := microClient.NewRequest("prodService", "/v1/prods", models.ProdRequest{Size: 6})

	var resp models.ProdListResponse
	err :=microClient.Call(context.Background(),req, &resp)
	if err != nil {
		log.Fatalln(err)
	}
	fmt.Println(resp.GetData())
}

开启服务,并测试,终端输出

=== RUN   TestConsul2
[ProdID:100 ProdName:"ProdName100" ProdID:101 ProdName:"ProdName101" ProdID:102 ProdName:"ProdName102" ProdID:103 ProdName:"ProdName103" ProdID:104 ProdName:"ProdName104" ProdID:105 ProdName:"ProdName105"]
--- PASS: TestConsul2 (0.08s)
PASS

Process finished with the exit code 0

你可以使用以下命令安装 google-protobuf: npm install --save google-protobuf 这个命令会将 google-protobuf 模块安装到你的项目中,并将其保存为依赖项。 然后,你可以使用以下路径引入 empty_pb.js 模块: google-protobuf/google/protobuf/empty_pb.js 这将允许你在代码中使用 empty_pb.js 模块。请确保在你的代码中正确引入这个路径。 需要注意的是,确保你已经在安装 google-protobuf 之前完成了 protobufjs 的安装,以便确保这两个模块之间的依赖关系正确。如果你遇到了安装问题或错误提示,你可以使用 --force 选项来强制执行安装命令,以解决已存在的文件问题。 希望这些信息对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [protobuf.js的使用](https://blog.csdn.net/qq_27868061/article/details/114038738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [npm install -g protobufjs](https://blog.csdn.net/qifenzhisanjin/article/details/124952503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值