【发布时间】:2021-04-26 12:41:10
【问题描述】:
我将 Armeria 1.3.0 和 protobuf 用于 gRPC 服务。 我在处理异常时尝试使用rich error model,但我认为 Armeria 似乎只支持标准错误模型。
如何在 Armeria 中使用丰富的错误模型?我想在发生异常时返回自定义错误代码/消息以及有关错误的更多详细信息。
提前感谢您的回答。
【问题讨论】:
-
嗨!什么是富模型?
-
没错。根据此链接stackoverflow.com/questions/48748745/…,有一些使用google protobuf的示例
-
是的,您是否尝试在
Metadata中指定此类信息?我认为 Armeria 应该是可行的。 -
我尝试使用元数据,但只有在使用 responseObserver.onError 方法而不是 GrpcService.Builder 的 exceptionMapping 时才有可能。 exceptionMapping 方法只返回 Status,所以我很棘手地尝试了这样,
return Status.INTERNAL.asRuntimeException(metadata).getStatus()但是 metadata.get 方法在 grpc 客户端返回 null。