如何解决Go中的高性能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
非零-则遇到边缘情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。