介绍
基于proto文件可以快速生成warden
框架对应的代码,提前需要准备以下工作:
- 安装
kratos tool protoc
工具,请看kratos工具 - 编写
proto
文件,示例可参考kratos-demo内proto文件
kratos工具说明
kratos tool protoc
工具可以生成warden
bm
swagger
对应的代码和文档,想要单独生成warden
代码只需加上--grpc
如:
# generate gRPC
kratos tool protoc --grpc api.proto
使用
建议在项目api
目录下编写proto
文件及生成对应的代码,可参考kratos-demo内的api目录。
执行命令后生成的api.pb.go
代码,注意其中的DemoClient
和DemoServer
,其中:
DemoClient
接口为客户端调用接口,相对应的有demoClient
结构体为其实现DemoServer
接口为服务端接口声明,需要业务自己实现该接口的所有方法,kratos
建议在internal/service
目录下使用Service
结构体实现
internal/service
内的Service
结构实现了DemoServer
接口可参考kratos-demo内的service内的如下代码:
// SayHelloURL bm demo func.
func (s *Service) SayHelloURL(ctx context.Context, req *pb.HelloReq) (reply *pb.HelloResp, err error) {
reply = &pb.HelloResp{
Content: "hello " + req.Name,
}
fmt.Printf("hello url %s", req.Name)
return
}
更详细的客户端和服务端使用请看warden快速开始