有没有办法在 armeria 中为 grpc 服务使用丰富的错误模型?

Is there any way to use rich error model for grpc service in armeria?

我正在为 gRPC 服务使用 Armeria 1.3.0 和 protobuf。 我在处理异常时尝试使用 rich error model,但我认为 Armeria 似乎只支持标准错误模型。

如何在 Armeria 中使用丰富的错误模型?我想 return 自定义错误 code/message 以及有关发生异常时的错误的更多详细信息。

提前感谢您的回答。

在 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