Есть ли способ использовать расширенную модель ошибок для сервиса grpc в armeria?

Я использую Armeria 1.3.0 и protobuf для службы gRPC. Я пытался использовать расширенную модель ошибок при обработке исключений, но я думаю, что Armeria, похоже, поддерживает только стандартную модель ошибок.

Как я могу использовать расширенную модель ошибок в Armeria? Я хочу вернуть собственный код ошибки / сообщение и более подробную информацию об ошибке при возникновении исключения.

Заранее благодарим за ответ.

1 ответ

Не было возможности прикрепить произвольный gRPC Metadata на ответ об ошибке gRPC до версии Armeria 1.5.0, но вы сможете сделать это в следующем незначительном обновлении (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 .

Другие вопросы по тегам