介绍

基于proto文件可以快速生成warden框架对应的代码,提前需要准备以下工作:

kratos工具说明

kratos tool protoc工具可以生成warden bm swagger对应的代码和文档,想要单独生成warden代码只需加上--grpc如:

  1. # generate gRPC
  2. kratos tool protoc --grpc api.proto

使用

建议在项目api目录下编写proto文件及生成对应的代码,可参考kratos-demo内的api目录

执行命令后生成的api.pb.go代码,注意其中的DemoClientDemoServer,其中:

  • DemoClient接口为客户端调用接口,相对应的有demoClient结构体为其实现
  • DemoServer接口为服务端接口声明,需要业务自己实现该接口的所有方法,kratos建议在internal/service目录下使用Service结构体实现

internal/service内的Service结构实现了DemoServer接口可参考kratos-demo内的service内的如下代码:

  1. // SayHelloURL bm demo func.
  2. func (s *Service) SayHelloURL(ctx context.Context, req *pb.HelloReq) (reply *pb.HelloResp, err error) {
  3. reply = &pb.HelloResp{
  4. Content: "hello " + req.Name,
  5. }
  6. fmt.Printf("hello url %s", req.Name)
  7. return
  8. }

更详细的客户端和服务端使用请看warden快速开始

扩展阅读

warden快速开始
warden拦截器
warden负载均衡
warden服务发现