JSON-WSP或JSON-RPC

5
我们即将使用JSON对象作为传输方式来实现Web服务。我们希望第三方组织能够连接到我们的网络,因此我们计划使用标准化协议以便于未来的集成。
目前,对于JSON,有两种规范:JSON-RPC和JSON-WSP。如果你在我的位置上,你会选择哪一个?我想知道其他人对这两个规范的看法。目前,我看到JSON-RPC已经存在了一段时间,并且具有多种语言的实现。JSON-WSP处于早期阶段,但它旨在取代JSON-RPC(RFC正在制定中)。我认为JSON-WSP从长远来看会是一个很好的解决方案,但我可能是错的。

请查看以下链接:http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ - Jeff Atwood
2个回答

6
两个协议的主要区别在于,JSON-WSP可以使用jsonwsp/description object描述自己的服务方法。如果您希望客户端能够“了解”您的Web服务,并可能提供动态的客户端用户界面,以便在更改服务方法时可以自动更改可视化,则这很好。因此,服务器端更新可能变得非常容易分发。
JSON-WSP在规范中支持attachments
JSON-RPC支持批量方法调用-在一个请求中调用多个方法。还可以进行无响应请求(通知)。
JSON-RPC是这两个协议中最古老的,因此它拥有更多的实现和庞大的社区。
所以我想这归结于您的需求是什么。
如果您正在构建基于浏览器的应用程序,则JSON-WSP提供了一种使用官方javascript客户端的高效Ajax机制。JavaScript json-wsp客户端解析服务描述并生成具有1对1映射到json-wsp方法的方法的代理对象:

http://ladonize.org/index.php/Python_Example#JavaScript_JSON-WSP_client


1

为什么不使用REST?

如果您已经知道JSON类型的格式,请将它们记录为各个资源的表示形式,然后通过HTTP提供对它们的访问。这样,您将获得底层传输基础设施的好处(缓存可能性,出色的工具等)。

使用超链接在每个资源之间允许客户端之间导航。您的API用户将不会被绑定到基于契约的RPC机制,这对您的演进将是困难的,并需要另一个工具包供客户端使用。使用REST只需要一个HTTP库(它们很常见)和一个JSON解析器(它们已经需要了)。此外,您始终可以稍后添加其他编码选项(例如XML),对现有客户端的影响很小。

使用JSON并不意味着必须选择JSON-RPC或JSON-WSP。为API选择低公共分母,使用长期建立的、超级简单的标准(如HTTP和JSON)并充分利用它们的优势。一旦您开始在其中添加更多规范和标准,您将发现您的API的复杂性成比例增长。


2
JSON-RPC就是你所描述的,但是以指定的形式呈现。你可以通过HTTP或者使用纯TCP进行转换。 - barell
2
这就是为什么:https://medium.freecodecamp.org/rest-is-the-new-soap-97ff6c09896d - Ray Hulha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接