当前位置:  开发笔记 > 编程语言 > 正文

SOAP或REST作为客户端

如何解决《SOAP或REST作为客户端》经验,为你挑选了2个好方法。

我看到多个问题,从Web服务本身的开发中询问哪个更好,SOAP或REST.但是,从客户的角度来看,不是很多关于利弊的讨论.如果您要编写一个应用程序并在两个Web服务API之间进行选择,除了一个是SOAP而另一个是REST之外,它们在各个方面都相似,您会选择哪个以及为什么?REST具有允许XML或JSON的额外好处,两者之间是否还有其他主要区别?



1> Darrel Mille..:

哇,10个小时,到目前为止这个问题没有答案.通常这些类型的问题会在瞬间被提升.

无论如何,这里有一些奇怪的答案你的问题.选择应取决于几件事:

    这两个API的文档有多好.

    API的可能性有多大变化.

    我需要多长时间来生产客户

    客户可能需要多长时间才能使用.

    REST api文档是否包含他们返回的带有XML/JSON的Url列表?

无论哪种API具有更好的文档,都可能是更好的API.这不是保证,但它是一个很好的指标.如果实现是垃圾,那么SOAP是否优于REST并不重要,反之亦然.

如果这是一个由初创公司创建的全新API,可能会在明年发生重大变化,那么REST api可能更容易管理.SOAP apis往往非常脆弱,并且由于生成的客户端代理代码而需要频繁的客户端重新编译.

尽管有1001个理由我讨厌客户端生成的代理代码,但是如果你需要让一些工作变得非常快.在WSDL块中指向您喜欢的IDE将很快为您提供一个可以使用的对象模型.这绝对是获得成功的最快方式.

如果客户将要存在多年,那么我认为值得投入时间来创建一个好的REST客户端.基于REST的方法对于随时间发生的不可避免的变化更具弹性.对于REST客户端而言,与基于SOAP的客户端相比,还有更多选择.

最后一项是关于REST API是否是真正的REST接口的一些试金石.如果文档是http端点的目录,那么您可以非常放心,设计人员不知道REST是什么,所以远离它.



2> Will Hartung..:

你做了一个有缺陷的假设.

你说:

如果您要编写一个应用程序并在两个Web服务API之间进行选择,除了一个是SOAP而另一个是REST之外,它们在各个方面都相似,您会选择哪个以及为什么?

事实上,SOAP API很可能与REST系统完全不同,因此您无法在此级别进行真正的比较.

REST是一种架构,而不是协议.SOAP是一种协议,但不是一种架构.虽然可能,但您不太可能在SOAP协议之上创建REST架构,因为SOAP有效负载不会为REST系统提供太多帮助.

SOAP系统往往更基于RPC,REST系统基于资源.在操作和设计方面,这两者之间的差异很大.

至于使用SOAP vs XML/JSON over HTTP(很多人错误地将其与REST混淆),SOAP系统的主要好处是可以更容易地与系统连接和发布系统.

如今,许多IDE和服务器都可以轻松发布和使用SOAP Web服务.

在Java中,发布SOAP接口可以更多地将"@WebService"粘贴到文件中并进行部署.使用Web服务只不过是将IDE指向WSDL(在Web服务发布时方便地为您创建),单击按钮,然后让工具创建编组数据和与服务通信所必需的代理.

通过HTTP的XML/JSON有一个好处,你可能会跳过大部分锅炉板,使SOAP自动化"简单".当然,Javascript非常擅长使用JSON,因此如果您的客户端空间包含Web浏览器,那么这可能是一个因素.

简而言之,如果你说浏览器到服务器,基于HTTP的XML/JSON工作得很好,实际的REST架构也可以很好地工作.

如果您在服务器之间讨论RPC,那么由于现有的工具,SOAP更容易实现.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有