我将 Armeria 1.3.0 和 protobuf 用于 gRPC 服务。我在处理异常时尝试使用丰富的错误模型,但我认为 Armeria 似乎只支持标准错误模型。
如何在 Armeria 中使用丰富的错误模型?我想在发生异常时返回自定义错误代码/消息以及有关错误的更多详细信息。
提前感谢您的回答。
在 Armeria 1.5.0 之前,不可能将任意 gRPC 附加Metadata到 gRPC 错误响应,但您将能够从下一个小更新 (1.6.0) 开始这样做:
GrpcService
.builder()
.addExceptionMapping(MyException.class, (cause, metadata) -> {
metadata.put(MY_KEY, myValue)
return Status.XXX.withDescription("...");
})
...
有关详细信息,请参阅https://github.com/line/armeria/pull/3329。