proto文件的编写可以参考我之前讲解grpc的教程
单rpc服务模式
我们编写一个proto文件
提供两个服务,一个是获取用户信息方法,一个是用户添加的方法
user.proto
syntax = "proto3";
package user;
option go_package = "./user";
message UserInfoRequest {
uint32 user_id = 1;
}
message UserInfoResponse {
uint32 user_id = 1;
string username = 2;
}
message UserCreateRequest {
string username = 1;
string password = 2;
}
message UserCreateResponse {
}
service Users {
rpc UserInfo(UserInfoRequest) returns(UserInfoResponse);
rpc UserCreate(UserCreateRequest) returns(UserCreateResponse);
}
// goctl rpc protoc user.proto --go_out=./types --go-grpc_out=./types --zrpc_out=.
和传统grpc不一样的是,go-zero里面的proto文件不能外部引入message
在logic种完善对应的逻辑
func (l *UserInfoLogic) UserInfo(in *user.UserInfoRequest) (*user.UserInfoResponse, error) {
fmt.Println(in.UserId)
return &user.UserInfoResponse{
UserId: in.UserId,
Username: "枫枫",
}, nil
}
func (l *UserCreateLogic) UserCreate(in *user.UserCreateRequest) (*user.UserCreateResponse, error) {
fmt.Println(in.Username, in.Password)
return &user.UserCreateResponse{}, nil
}
使用apifox调用grpc


最低0.47元/天 解锁文章
1730

被折叠的 条评论
为什么被折叠?



