【问题标题】:Setting status code in grpc server method call在 grpc 服务器方法调用中设置状态码
【发布时间】:2021-05-20 06:17:49
【问题描述】:

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

func (i *ItemServerImp) Register(ct context.Context, it *item.RegisterItemRequest) (*item.RegisterItemReply, error) {
}

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

但是我确实找到了以下https://chromium.googlesource.com/external/github.com/grpc/grpc/+/refs/heads/chromium-deps/2016-07-27/doc/statuscodes.md,它说可以设置状态码。

【问题讨论】:

  • HTTP状态码的映射可以参考this code

标签: go grpc


【解决方案1】:

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

return nil, status.Error(codes.InvalidArgument, "Incorrect request argument")

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2023-04-03
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    相关资源
    最近更新 更多