在 grpc 服务器方法调用中设置状态代码

tmp*_*dev 2 go grpc

如何在golang中的grpc方法中设置响应状态代码。例如,假设我有以下 grpc 方法

func (i *ItemServerImp) Register(ct context.Context, it *item.RegisterItemRequest) (*item.RegisterItemReply, error) {
}
Run Code Online (Sandbox Code Playgroud)

如何根据输入或某些处理将响应状态设置为 200 或 400。我环顾四周,找不到合适的方法来做到这一点。

不过我确实找到了以下https://chromium.googlesource.com/external/github.com/grpc/grpc/+/refs/heads/chromium-deps/2016-07-27/doc/statuscodes.md,其中表示可以设置状态码。

Gre*_*ski 5

您可以使用google.golang.org/grpc/status包返回 gRPC 错误,如下所示:

return nil, status.Error(codes.InvalidArgument, "Incorrect request argument")
Run Code Online (Sandbox Code Playgroud)

google.golang.org/grpc/codes包中提供了不同的状态代码。