Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 谷歌云端点(ESP)gRPC转码到camel案例_Kubernetes_Google Cloud Platform_Google Kubernetes Engine_Google Cloud Endpoints_Grpc - Fatal编程技术网

Kubernetes 谷歌云端点(ESP)gRPC转码到camel案例

Kubernetes 谷歌云端点(ESP)gRPC转码到camel案例,kubernetes,google-cloud-platform,google-kubernetes-engine,google-cloud-endpoints,grpc,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Google Cloud Endpoints,Grpc,我已使用Google Cloud Endpoints/ESP部署了gRPC服务器,如下所示: 在我的proto文件中,我的字段以snake_的形式命名,遵循协议缓冲区命名约定(),如下所示: message MyMessage { string my_field = 1; } 部署到云端点时,字段名将转换为camelCase。因此,如果我使用HTTP端点调用API,JSON响应如下所示: { "myField":"field value" } 如果我使用GRPC客户端(Node.j

我已使用Google Cloud Endpoints/ESP部署了gRPC服务器,如下所示:

在我的proto文件中,我的字段以snake_的形式命名,遵循协议缓冲区命名约定(),如下所示:

message MyMessage {
  string my_field = 1;
}
部署到云端点时,字段名将转换为camelCase。因此,如果我使用HTTP端点调用API,JSON响应如下所示:

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

{
  "my_field":"field value"
}
在Cloud Endpoints Developer门户文档中,字段名也转换为驼峰大小写

在替换现有API时,我更愿意对GRPC和HTTP客户端使用snake案例。如果我可以防止字段名被转换,我基本上可以将后端切换到新服务,而不需要对客户端进行任何更改


有没有一种方法可以强制ESP在转换到HTTP/JSON时使用驼峰大小写字段名?

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


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

我将使用ESP将我的grpc应用程序部署到k8s,使用下面的配置,它将把protobuf响应转换为snake case而不是camel case

- 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