JSON-RPC和Swagger的组合

10

我考虑使用这个库为我的Web服务实现JSON-RPC。我还想为我的服务实现Swagger

然而,我不确定这两个技术是否能很好地结合在一起。在JSON-RPC中,所有方法都在同一个资源后面,而在Swagger中却没有意义。

我想知道以下内容:

  1. 是否可以充分结合这些技术?
  2. JSON-RPC仍然是一个好的技术吗?还是最好手动实现它?

欢迎您的想法。

相关但未回答的问题:Swagger和json-rpc


1
你有找到任何替代json-rpc API文档生成器的方案吗? - imapollo
2个回答

9

作为Swagger团队的一员,虽然我对JSON-RPC了解不多,但我可以提供部分答案。

根据你在问题中描述的内容,使用Swagger来记录这样的API肯定是不可能的。Swagger只能记录唯一的操作,其中唯一的操作被定义为路径和HTTP动词的组合。

不幸的是,我不能评论JSON-RPC的强大之处,这并不是因为有偏见,而是因为我对它的机制不够了解。此外,Swagger并不旨在覆盖描述类似REST API的所有用例,这并不意味着其范围之外的任何内容都不好。


谢谢你的回答!我想我只需要选择其中一个。 - Karens
我很希望看到Swagger采用/适应支持JSON-RPC。正如下面的评论所说,JSON-RPC真的很棒。能够利用Swagger的优秀特性将是非常好的。 - brettw

5

关于API模式的说明...

JSON-RPC非常强大。它是传输不可知的,而REST则仅限于HTTP。如果您想使用流而不是隔离请求,则需要进行相当多的修改。从一开始,JSON-RPC会改变您的范例,并且在任何新传输上运行您的API(如socket.io、原始二进制、ZeroMQ、传真-> OCR、短信等)都是一种微不足道的实现。

在我看来,JSON-RPC相对于REST如同REST相对于SOAP。



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