gRPC-JSON transcoder

gRPC-JSON transcoder configuration overview.

config.filter.http.transcoder.v2.GrpcJsonTranscoder

[config.filter.http.transcoder.v2.GrpcJsonTranscoder proto]

{
  "proto_descriptor": "...",
  "proto_descriptor_bin": "...",
  "services": [],
  "print_options": "{...}",
  "match_incoming_request_route": "..."
}
proto_descriptor

(string) Supplies the filename of the proto descriptor set for the gRPC services.

Precisely one of proto_descriptor, proto_descriptor_bin must be set.

proto_descriptor_bin

(bytes) Supplies the binary content of the proto descriptor set for the gRPC services.

Precisely one of proto_descriptor, proto_descriptor_bin must be set.

services
(string, REQUIRED) A list of strings that supplies the fully qualified service names (i.e. “package_name.service_name”) that the transcoder will translate. If the service name doesn’t exist in proto_descriptor, Envoy will fail at startup. The proto_descriptor may contain more services than the service names specified here, but they won’t be translated.
print_options
(config.filter.http.transcoder.v2.GrpcJsonTranscoder.PrintOptions) Control options for response JSON. These options are passed directly to JsonPrintOptions.
match_incoming_request_route
(bool) Whether to keep the incoming request route after the outgoing headers have been transformed to the match the upstream gRPC service. Note: This means that routes for gRPC services that are not transcoded cannot be used in combination with match_incoming_request_route.

config.filter.http.transcoder.v2.GrpcJsonTranscoder.PrintOptions

[config.filter.http.transcoder.v2.GrpcJsonTranscoder.PrintOptions proto]

{
  "add_whitespace": "...",
  "always_print_primitive_fields": "...",
  "always_print_enums_as_ints": "...",
  "preserve_proto_field_names": "..."
}
add_whitespace
(bool) Whether to add spaces, line breaks and indentation to make the JSON output easy to read. Defaults to false.
always_print_primitive_fields
(bool) Whether to always print primitive fields. By default primitive fields with default values will be omitted in JSON output. For example, an int32 field set to 0 will be omitted. Setting this flag to true will override the default behavior and print primitive fields regardless of their values. Defaults to false.
always_print_enums_as_ints
(bool) Whether to always print enums as ints. By default they are rendered as strings. Defaults to false.
preserve_proto_field_names
(bool) Whether to preserve proto field names. By default protobuf will generate JSON field names using the json_name option, or lower camel case, in that order. Setting this flag will preserve the original field names. Defaults to false.