Я использую gRPC
в Конечные точки Google CLoud Я использую быстрый пример для Конечная точка python
Я добавляю одну функцию для SayHelloRepeated
, но не не знаю, как перекодировать повторное поле.
helloworld.proto
service Greeter {
...
rpc SayHelloRepeated (RepeatedHello) returns (HelloReply) {}
...
}
message RepeatedHello {
repeated HelloRequest hello_request = 1;
}
message HelloRequest {
string name = 1;
}
api_config_http.yaml
http:
rules:
...
- selector: helloworld.Greeter.SayHelloRepeated
get: /v1/rsayhello/{hello_request}
...
Когда я пытаюсь развернуть api_config_http.yaml
это выдает ошибку Повторное поле не разрешено
ОШИБКА: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT: Невозможно преобразовать в конфигурацию службы.
вид: Сообщение об ошибке: "http: повторное поле не разрешено: достигнуто через \ 'hello_request \' в сообщении \ 'helloworld.RepeatedHello \'."
Обновление
Что если HelloRequest
имеет несколько полей, а не только одно поле name
, что делать.
message HelloRequest {
string name = 1;
string message = 2;
}