GRPC初探--proto文件的编写

lkpalu Lv3

语法

proto文件为protoc buffer文件,这是一种高效的文件格式,由Google出品,现在流行的语法为proto3,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
syntax = "proto3";
option go_package = "github.com/lkpalu/grpc-go-example/proto";
package Server;

message Request {
string messages = 1;
}

message Response {
string messages = 1;
}

service New{
rpc Hello (Request) returns (Response);
}

第一句指定该文件的语法版本可选proto3/proto2

第二句指定由proto文件生成的go文件所在包目录

第三句指定生成的go文件的package

message

meassage类似不同语言中的结构体

用于定义发送消息和接收消息的内容类型

格式为变量类型 变量 = id

初次接触的朋友可能不了解这个id是用来做什么的,这个其实是文件在序列化和反序列化时的排序

service

service类似不同语言的接口或抽象类,用来规定服务端的函数

内部的rpc为函数定义,即远程调用的函数,特别注意,流式服务需要指明传入参数stream或传出参数stream

1
2
3
4
service New{
rpc Hello (Request) returns (Response);
rpc Hello2 (stream Request) returns (stream Response);
}

代码生成

在proto文件目录中运行

1
protoc --go_out=. --go-grpc_out=. your_proto_file.proto

会生成两个文件并且目录结构如下

proto

目录结构和刚才指定的go_package相同

  • 标题: GRPC初探--proto文件的编写
  • 作者: lkpalu
  • 创建于 : 2024-11-07 15:05:00
  • 更新于 : 2024-11-07 16:52:09
  • 链接: https://redefine.ohevan.com/2024/11/07/GRPC初探-proto文件的编写/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
GRPC初探--proto文件的编写