2014-09-24 123 views
1

在Go世界中,有没有任何项目实现JSON RPC 2.0(HTTP),尤其是批量查询的功能?通过HTTP转到JSON RPC v2

一些背景,我知道有一个Go内置的一个,但它不是通过HTTP,并且Gorilla看起来支持V2(在v2文件夹中,但我找不到它的文档),但是因为我对“[{valid_request ...},{valid_request ...}]”这样的组合请求测试了它的响应空结果。也许它没有实现批处理。 (我是否错过了任何东西以便正确使用?)

+0

请参阅http://www.gorillatoolkit.org/pkg/rpc/json#overview。上次我看,Gorilla只是JSON-RPC v1。我目前还不知道Go的v2客户端,但希望别人知道其中的一个。 – Intermernet 2014-09-24 12:26:57

+0

雅,但在代码库中有“gorilla/rpc”下面的名为“v2”的文件夹。我做了一些测试,发现这个编解码器需要一个额外的字段“jsonrpc”:“2.0”在请求工作,“[...]”在params领域也走了..但是,我没有找到任何逻辑批量查询。一个很好的部分是代码并不复杂,并且可以自己添加批处理。 – 2014-09-24 12:38:29

+0

如果您确实设法添加批次,请向Gorilla团队发送拉取请求,以防他们想要合并您的更改。 – Intermernet 2014-09-25 06:17:54

回答

1

因为现在我找不到现成的Go服务器支持JsonRpc 2.0,所以我修改了大猩猩JsonRPC 2.0以支持批量查询。分叉回购是在https://github.com/jason-xxl/rpc。只需要将导入路径从“gorilla/rpc/v2”更改为“jason-xxl/rpc/v2_batch”即可获得可测试的批量查询服务器。 (请让我知道,如果我错过了任何已经支持2.0批的任何一个。)

+0

谢谢杰森!您的工作是否已合并回大猩猩/ rpc/v2?或者我应该继续去拿叉子吗? – cxwangyi 2015-01-02 08:12:50

+0

嗨,我没有拉请求回它,因为它是更多的我们的用例(尚未完全测试覆盖),更重要的是,在生产中,你需要把最大子请求的阈值允许在一个单一的父请求,其他明智您的服务器可能很容易被有效的巨大请求取消。但是代码显示了可以引用的可能实现。 – 2015-01-07 03:58:58