Как прочитать пользовательский параметр proto3 из Java - PullRequest
0 голосов
/ 18 января 2020

Учитывая следующий сервис:

message Message {
  string content = 1;
}

service EchoService {
  rpc echo (Message) returns (Message) {
    option (google.api.http) = { get: "/echo" };
  }
}

Я хочу прочитать опцию из Java. Насколько я понимаю, следующий код должен работать:

HttpRule rule = Message.getDescriptor()
  .getOptions()
  .getExtension(AnnotationsProto.http)

Однако он не компилируется, жалуется на проблемы с вводом текста, которые не могут решить метод.

Я пытаюсь следовать этому: https://developers.google.com/protocol-buffers/docs/proto.html#customoptions

Итак, вопрос в том, как мне прочитать опцию из Java?

1 Ответ

0 голосов
/ 19 января 2020

Ну, это неловко, это на самом деле совершенно другой тип.

AnnotationsProto.http реализует тип с обобщенным значением c из MethodOptions (https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/DescriptorProtos.MethodOptions.html)

Принимая во внимание, что Message.getDescriptor().getOptions().getExtensions() ожидает параметр с обобщенным значением c, равным MessageOptions (https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/DescriptorProtos.MessageOptions.html)

Метод Параметры против Сообщение Опции - возможно, мне нужно заняться спекулянтами ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...