登录
首页 >  Golang >  Go问答

高效处理错误的 gRPC 实现方式

来源:stackoverflow

时间:2024-03-02 21:36:26 432浏览 收藏

今天golang学习网给大家带来了《高效处理错误的 gRPC 实现方式》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

Google 文档提出了以下模型(https://cloud.google.com/apis/design/errors#error_model)用于在 gRPC 中发送丰富的错误,但似乎每次都会将错误字符串发送给用户。我想要做的是发送一个代码,然后在到达客户端时将其映射到一个字符串。

我想知道的是 proto3 语言支持写入数据,以便我可以在客户端使用它,而无需定义自定义结构来将错误代码映射到错误消息。


解决方案


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 - 则遇到了边缘情况。

今天关于《高效处理错误的 gRPC 实现方式》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>