【发布时间】:2018-07-22 18:10:07
【问题描述】:
使用 gRPC 向客户端发送有关错误的更多详细信息的模式是什么?
例如,假设我有一个用于注册用户的表单,它会发送一条消息
message RegisterUser {
string email = 1;
string password = 2;
}
电子邮件格式必须正确且唯一,密码长度必须至少为 8 个字符。
如果我正在编写 JSON API,我会返回 400 错误,正文如下:
{
"errors": [{
"field": "email",
"message": "Email does not have proper format."
}, {
"field": "password",
"message": "Password must be at least 8 characters."
}],
}
并且客户端可以向用户提供很好的错误消息(即通过突出显示密码字段并明确告诉用户他们的输入有问题)。
使用 gRPC 有没有办法做类似的事情?似乎在大多数客户端语言中,错误会导致抛出异常,而无法获取响应。
例如,我想要类似的东西
message ValidationError {
string field = 1;
string message = 2;
}
message RegisterUserResponse {
repeated ValidationError validation_errors = 1;
...
}
或类似的。
【问题讨论】:
标签: grpc