Как импортировать пустой gRPC и прототип аннотаций Google API

Я пытаюсь использовать конечные точки Google Cloud для создания API на основе gRPC, который может перекодировать входящие запросы REST. Я следую их примерному коду но у меня нет документации о том, как правильно импортировать и компилировать с помощью annotation.proto или empty.proto.

Спасибо!


person Arjun Yelamanchili    schedule 09.04.2017    source источник


Ответы (3)


Я не понял, что это часть grpc-gateway. следуя документации, я запустил

protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:. *.proto

и успешно скомпилирован.

person Arjun Yelamanchili    schedule 10.04.2017

это может быть плохой идеей. вы можете скопировать google/api/annotations.proto и google/api/http.proto в свой локальный проект и импортировать их при запуске python -m

mkdir -p google/api    
curl https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/annotations.proto > google/api/annotations.proto     
curl https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/http.proto > google/api/http.proto

python -m grpc_tools.protoc google/api/http.proto google/api/annotations.proto -I. --python_out=. --grpc_python_out=. your_proto.proto

refurl: https://cloud.google.com/solutions/exposing-grpc-services-using-cloud-endpoints-pt1

person gaozhidf    schedule 07.11.2018
comment
Спасибо, это просто и отлично работает! - person Ivan Black; 17.04.2021
comment
У меня не работает. У меня есть инструменты grpcio и grpcio. При добавлении двух файлов я получаю сообщение об ошибке google.protobuf.MethodOptions is not defined (в annotations.proto). Как это пройти? - person Shivansh Jagga; 28.04.2021

Пустые.proto и annotation.proto не включены по умолчанию, поэтому вам нужно будет принести копию. В частности, вы можете сделать их копию в каталоге своего проекта или ссылаться на них в существующем проекте (например, в репозитории Protobuf git).

Вероятно, будет хорошей идеей НЕ ссылаться на копию, которую использует grpc-architecture / grpc-gateway, потому что они могут захотеть переместить ее в будущем.

person Carl Mastrangelo    schedule 18.04.2017