首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌云端点(ESP) gRPC转码为camel案例

谷歌云端点(ESP) gRPC转码为camel案例
EN

Stack Overflow用户
提问于 2019-08-29 06:37:13
回答 2查看 577关注 0票数 1

我已经使用Google Cloud Endpoint/ ESP部署了一个gRPC服务器,按照这里的说明进行操作:

https://cloud.google.com/endpoints/docs/grpc/get-started-kubernetes-engine

在我的proto文件中,我的字段按照协议缓冲区命名约定(https://developers.google.com/protocol-buffers/docs/style#message-and-field-names)以snake_case命名,如下所示:

代码语言:javascript
复制
message MyMessage {
  string my_field = 1;
}

在部署到云端点时,字段名称将转换为camelCase。因此,如果我使用HTTP端点调用API,JSON响应将如下所示:

代码语言:javascript
复制
{
  "myField":"field value"
}

如果我使用GRPC客户端(Node.js)调用服务,响应对象将以原始格式返回:

代码语言:javascript
复制
{
  "my_field":"field value"
}

在Cloud Endpoints Portal文档中,字段名称也会转换为驼峰式大小写。

我更喜欢对GRPC和HTTP客户端使用蛇形大小写,因为我正在替换现有的API。如果我可以防止字段名被转换,我基本上可以将后端切换到新的服务,而不需要对客户端进行任何更改。

有没有办法强制ESP在转码为HTTP/JSON时使用camel大小写字段名称?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-11 18:17:07

我正在使用ESP将我的grpc应用程序部署到k8s中,使用下面的配置,它将把protobuf响应代码转换为蛇形而不是驼峰形。

代码语言:javascript
复制
- name: esp
    image: gcr.io/endpoints-release/endpoints-runtime:1
    imagePullPolicy: Always
    args: [
      "--http_port=9000",
      "--backend=grpc://127.0.0.1:8080",
      "--service=xxxxxx",
      "--version=xxxxxx",
      "--transcoding_preserve_proto_field_names",
      "--transcoding_always_print_primitive_fields"
    ]
    ports:
    - name: http
      containerPort: 9000
票数 1
EN

Stack Overflow用户

发布于 2019-08-31 00:41:01

不幸的是,没有一个简单的方法可以做到这一点。我刚刚提交了此功能请求的增强issue

我们将尝试分配资源以使其进入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57700842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档