Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Import "google/api/annotations.proto" was not found or had errors. How do I add it as a dependency?

Following the docs on how to set up a gRPC gateway, I find myself stuck at step four of generating the grpc gateway.

Namely, things fall apart when the following line is added:

import "google/api/annotations.proto";

The documentation says You will need to provide the required third party protobuf files to the protoc compiler - but not actually how do do so.

How do I add google/api/annotations.proto as a dependency?

like image 290
cbll Avatar asked Feb 12 '21 08:02

cbll


4 Answers

I solved it one way by adding third party google apis and its content to the root of my project.

Feels wrong, but apparently this is encouraged

like image 88
cbll Avatar answered Nov 15 '22 07:11

cbll


I had the same issue and i resolved it following this structure :

proto
├── google
│   └── api
│       ├── annotations.proto
│       └── http.proto
└── helloworld
    └── hello_world.proto

and run the command :

protoc -I ./proto \
   --go_out ./proto --go_opt paths=source_relative \
   --go-grpc_out ./proto --go-grpc_opt paths=source_relative \
   --grpc-gateway_out ./proto --grpc-gateway_opt paths=source_relative \
   ./proto/helloworld/hello_world.proto
like image 21
Slimane amiar Avatar answered Nov 15 '22 07:11

Slimane amiar


I solved it with only copying annotations.proto and http.proto in the main proto:

import "Proto/google/api/annotations.proto";

and inside annotations.proto

import "Proto/google/api/http.proto";

and my folders look like this: enter image description here

like image 20
AJ AJ Avatar answered Nov 15 '22 07:11

AJ AJ


If you are using protoc to generate stubs, you need to ensure the required dependencies are available to the compiler at compile time. These can be found by manually cloning and copying the relevant files from the googleapis repository, and providing them to protoc when running. The files you will need are:

google/api/annotations.proto
google/api/field_behaviour.proto
google/api/http.proto
google/api/httpbody.proto

from grpc-gateway

for example run in project root git submodule add https://github.com/googleapis/googleapis to get actual version

like image 40
Igor Avatar answered Nov 15 '22 07:11

Igor