【发布时间】:2014-09-24 08:53:11
【问题描述】:
Go 世界中有没有实现 JSON RPC 2.0 (HTTP) 的项目,尤其是批量查询的特性?
一些背景知识,我知道有一个 Go 内置的,但它不是通过 HTTP 的,而且 Gorilla 看起来支持 V2(在 v2 文件夹中,但我找不到它的文档),但正如我测试的那样它响应像“[{valid_request...},{valid_request...}]”这样的组合请求的空结果。也许它还没有实施批处理。 (我是否遗漏了什么来做对?)
【问题讨论】:
-
请参阅gorillatoolkit.org/pkg/rpc/json#overview。上次我查看时,Gorilla 只是 JSON-RPC v1。我目前还不知道 Go 的 v2 客户端,但希望其他人会知道。
-
是的,但是在代码库中的“gorilla/rpc”下有一个名为“v2”的文件夹。我做了一些测试,发现这个编解码器在请求中需要一个额外的字段“jsonrpc”:“2.0”才能工作,params字段中的“[...]”也消失了..但是我没有找到任何关于的逻辑批量查询。一个好处是代码不复杂,可以自己添加批处理。
-
如果您设法添加批处理,请向 Gorilla 团队发送拉取请求,以防他们想要合并您的更改。
-
是的,我设法让批处理工作。以我的方式,我需要修改那些基本接口以将批处理查询视为默认情况,并将单个查询视为普通批处理查询的特殊情况。变化有点太大了。我不知道 Gorilla 团队是否真的感兴趣。此外,还有一些生产阈值控制尚未完成,例如限制一批最大查询等。