首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云端点在proto3转码期间支持JSON类型

云端点在proto3转码期间支持JSON类型
EN

Stack Overflow用户
提问于 2021-06-13 00:46:30
回答 1查看 40关注 0票数 0

我们正在探索google Cloud Endpoint,以将gRPC服务公开为REST API。这些服务使用包含Any类型字段的proto3消息。

云端点的可扩展服务代理是否支持嵌入自定义消息类型的Any字段的JSON代码转换?开箱即用,它似乎不支持这一点,并返回以下错误

代码语言:javascript
复制
{
    "code": 13,
    "message": "Type 'type.acmeapis.com/acme.v1.Augmentation' cannot be found.",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "internal"
        }
    ]
}

这需要在电除尘器上配置TypeRegistry吗?如果是,有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2021-06-13 01:33:14

我没有尝试对包含Any的消息使用云端点,但我认为不太可能将代理配置为对封装的消息进行代码转换。这是可能的,但我认为即使是特使也不太可能实现这一点(但是,我也不知道)。

目前还不清楚如果这样做,那么产生的REST API的语义是什么:

代码语言:javascript
复制
rpc AddGeneric (AddGenericRequest) returns (AddGenericResponse) {}

可能会变成:

代码语言:javascript
复制
post: "v1alpha/add"
body: "generic"

使用Any的类型将是由字节数组和字符串描述符组成的类型,这可以理解为REST API,但您的问题背后的原因可能需要REST客户端解码封装的消息。

但是,如果代码转换是递归地对封装的消息进行代码转换,那么这个(!)方法需要定义多种可能的消息体类型:

代码语言:javascript
复制
post: "v1alpha/add"
body: ["type-a" | "type-b" | "type-c" | ... ]

这虽然方便,但似乎有点不安宁。代码转换并不要求生成RESTful API,但它可能解释了其中的复杂性。

要获得明确的响应,我建议您在谷歌维护的ESPv2的GitHub代码库上创建一个issue。那里的人们反应迅速,乐于助人。

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

https://stackoverflow.com/questions/67950985

复制
相关文章

相似问题

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