我们正在探索google云endpoint,以将gRPC服务公开为REST API。这些服务使用包含任何类型字段的proto3消息。
云endpoint的可扩展服务代理(ESP)是否支持嵌入自定义消息类型的任何字段的JSON转码?开箱即用,它似乎不支持这一点,并返回以下错误
{
"code": 13,
"message": "Type 'type.acmeapis.com/acme.v1.Augmentation' cannot be found.",
"details": [
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"stackEntries": [],
"detail": "internal"
}
]
}
这是否需要在ESP上配置TypeRegistry?如果需要,是否有办法做到这一点?
我还没有尝试将云endpoint与包含任何
的消息一起使用,但我认为不太可能将代理配置为转码包封的消息。这是可能的,但我认为即使是特使也不太可能启用它(但是,我也不知道)。
目前还不清楚如果这起作用,结果REST API的语义学会是什么:
rpc AddGeneric (AddGenericRequest) returns (AddGenericResponse) {}
可能会变成:
post: "v1alpha/add"
body: "generic"
使用任何的类型将包括一个字节数组和一个字符串描述符,可以理解为REST API,但可能是您问题背后的原因,需要REST客户端对封装的消息进行解码。
但是,如果转码是递归地转码封装的消息,那么这个(!)方法需要定义多个可能的消息体类型:
post: "v1alpha/add"
body: ["type-a" | "type-b" | "type-c" | ... ]
这虽然方便,但似乎有点不安宁。代码转换不需要生成RESTful API,但它可以解释所涉及的复杂性。
为了得到明确的答复,我建议您在Google维护的用于ESPv2的GitHub repo上提出一个问题。那里的人反应迅速,乐于助人。
问题内容: 有什么优雅的方法可以使Python JSON编码器支持日期时间?一些第三者模块还是容易破解? 我正在使用tornado的数据库包装程序从db获取一些行以生成json。查询结果包括一个常规的MySQL时间戳列。 令人讨厌的是,Python的默认json编码器不支持自己的日期时间类型,这种类型在所有类型的数据库查询中都很常见。 我不想修改Python自己的json编码器。有什么好的做法吗?
有没有什么优雅的方法使Python JSON编码器支持datetime?一些第三方模块或简易黑客? 我正在使用tornado的数据库包装器从db获取一些行来生成一个json。查询结果包括一个常规的MySQL时间戳列。 Python默认的json编码器不支持自己的日期时间类型,这在各种数据库查询中都很常见,这很烦人。 我不想修改Python自己的json编码器。有什么好的做法吗?谢谢! ps:我通过
安装 protoc-gen-doc 简单遵循安装要求即可: https://github.com/estan/protoc-gen-doc 安装完成之后的protoc是2.5.0版本,无法处理proto3的文件。因此我们需要升级替换protoc为v3.0.0版本。 升级protoc 使用预编译版本 下载 请先在 protobuf 的 发布页面 中找到对应版本的 download ,然后下载对应版本
问题内容: 我正在使用http://www.json.org/java/index.html此处提供的JSON库将必须转换的JSON字符串转换为CSV。但是我有一个问题是,转换后键的顺序丢失了。 这是转换代码: 结果如下: 虽然我期望保持键的顺序: 有什么办法可以使用此库获得此结果吗?如果不是,是否有其他库可以提供保持键顺序在结果中的功能? 问题答案: 解决了。 我使用了https://code.
问题内容: 我正在使用http://www.json.org/java/index.html此处提供的JSON库将必须转换的JSON字符串转换为CSV。但是我的问题是,转换后键的顺序丢失了。 这是转换代码: 这是“ someString”的内容: 结果如下: 我期望保持键的顺序: 有什么办法可以使用此库获得此结果吗?如果不是,是否还有其他库可以提供在结果中保留键顺序的功能? 问题答案: 解决了。
Go内置了对JSON数据的编码和解码,这些数据的类型包括内置数据类型和自定义数据类型。 package main import "encoding/json" import "fmt" import "os" // 我们使用两个结构体来演示自定义数据类型的JSON数据编码和解码。 type Response1 struct { Page int Fruits []string