为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中的高性能 gRPC 丰富错误处理

Go 中的高性能 gRPC 丰富错误处理

Go
当年话下 2022-07-04 16:29:43
Google 文档提出了以下模型(https://cloud.google.com/apis/design/errors#error_model)用于在 gRPC 中发送丰富的错误,但似乎每次都将错误字符串发送给用户。我想要做的是发送一个代码,然后在它到达客户端时将其映射到一个字符串。我想知道的是该proto3语言支持写入数据的任何内容,以便我可以在客户端使用它,而无需定义自定义结构来将错误代码映射到错误消息。
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

在您的proto定义中,enum使用任何额外的错误代码定义一个简单的:


enum extraStatusCode {

    UNKNOWN         = 0;  // not set/used

    TOO_MANY_FOOS   = 1;

    NOT_ENOUGH_BARS = 2;

}

并将其作为顶级字段包含在任何返回的message:


message User {

    string uid      = 1;

    string email    = 2;


    // ...


    extraStatusCode = 15;

}

如果以非零值发送消息extraStatusCode- 则遇到边缘情况。


查看完整回答
反对 回复 2022-07-04
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信