开发流程 - gRPC
👉 记录gRPC的开发流程,方便后续的开发
开发步骤
1、生成proto模板文件
eagle proto add api/like/v1/like.proto
内容如下
syntax = "proto3";
package api.like.v1;
option go_package = "github.com/go-microservice/moment-service/api/like/v1;v1";
option java_multiple_files = true;
option java_package = "api.like.v1";
service LikeService {
rpc CreateLike (CreateLikeRequest) returns (CreateLikeReply);
rpc UpdateLike (UpdateLikeRequest) returns (UpdateLikeReply);
rpc DeleteLike (DeleteLikeRequest) returns (DeleteLikeReply);
rpc GetLike (GetLikeRequest) returns (GetLikeReply);
rpc ListLike (ListLikeRequest) returns (ListLikeReply);
}
message CreateLikeRequest {}
message CreateLikeReply {}
message UpdateLikeRequest {}
message UpdateLikeReply {}
message DeleteLikeRequest {}
message DeleteLikeReply {}
message GetLikeRequest {}
message GetLikeReply {}
message ListLikeRequest {}
message ListLikeReply {}
2、定义proto
主要是填充业务方法及message定义
vim api/like/v1/like.proto
3、生成pb文件
业务rpc方法及message定义完,就可以生成pb文件了,具体操作如下
# 方式一:生成所有proto
make grpc
# 方式二:生成指定proto的pb文件
eagle proto client api/like/v1/like.proto
# Output
# api/like/v1/
like.pb.go #新增
like.proto
like_grpc.pb.go #新增
说明
protocol buffer编译器(protoc)生成的代码包含
- 消息序列化代码(
*.pb.go
) - 客户端使用方法调用的远程接口存根(
*_grpc.pb.go
) - 服务器代码实现的抽象接口(
*_grpc.pb.go
)