json_transcoder_filter 实现 HTTP/1.1+JSON 与 HTTP/2+GRPC 的互转。
使用第三方库 grpc-httpjson-transcoding 完成 json 与 grpc 的协议转换,转换规则由 http.proto 定义。
http.proto 通过注解(Annotations)为 GRPC 接口添加 RESTful HTTP 接口映射。
json_transcoder_filter
对 stream 有一定支持,由于它是基于 HTTP/1.1,本质上是请求-响应模型,只支持 GRPC 的 Server streaming
和 Client streaming
,不支持 Bidirectional streaming
,它将 GRPC 消息流映射为消息数组(Json array)。
示例项目
Envoy 带了一个 grpc-bridge 示例项目,依照它做了一个 grpc_json_transcoder 示例项目: