Support multiple proto descriptor files

Skip to first unread message

Ricardo Cuenca

Apr 12, 2021, 4:01:00 PM4/12/21
to api-gateway-users
When creating a configuration with multiple grpc services, like so:

type: google.api.Service
config_version: 3
title: API Gateway
- name: foo.v1.FooService
- name: bar.v1.BarService

(or multiple config files, one per service), which are declared in separate proto files


one can't create descriptor sets for each service and upload everything at once with 

gcloud api-gateway api-configs create [...] --grpc-files=path/to/foo_config.yaml,path/to/bar_config.yaml,path/to/foo_descriptor_set.pb,path/to/bar_descriptor_set.pb

This will cause the last descriptor set to overwrite the previous one, so that in this example you would get an error claiming that  FooService can't be resolved.
To fix this, one has to compile both services together to create a single descriptor set. I feel like it should be possible to upload multiple descriptor sets simultaneously, which fits in more naturally with service-grouped compilation (eg in bazel typically each service directory would contain a build rule with a descriptor_set rule). Does this make sense or is using a single descriptor set a best practice™ (probably can avoid duplication at compile time, but should be possible to dedup later) enforced by api gateway?
Reply all
Reply to author
0 new messages