proto定义错误
定义错误
syntax = "proto3";
package helloworld.v1;
import "errors/errors.proto";
option go_package = "hello/api/helloworld/v1;v1";option java_multiple_files = true;option java_package = "helloworld.v1";option objc_class_prefix = "APIHelloworldV1";
enum ErrorReason { option (errors.default_code) = 500;
GREETER_UNSPECIFIED = 0 [(errors.code) = 400]; USER_NOT_FOUND = 1 [(errors.code) = 404];}使用错误
package service
import ( v1 "hello/api/helloworld/v1" kerrors "github.com/go-kratos/kratos/v2/errors")
func (s *GreeterService) SayHello(ctx context.Context, req *v1.HelloRequest) (*v1.HelloReply, error) { if req.Name != "kratos" { return nil, kerrors.NotFound(v1.ErrorReason_USER_NOT_FOUND.String(), "用户不存在") }
if req.Name == "" { return nil, kerrors.BadRequest(v1.ErrorReason_GREETER_UNSPECIFIED.String(), "名称不能为空") }
g, err := s.uc.CreateGreeter(ctx, &biz.Greeter{Hello: req.Name}) if err != nil { return nil, err }
return &v1.HelloReply{Message: "Hello " + g.Hello}, nil}