看来一切都好但是为什么我们应该使用肥皂来进行Web服务?
解决方法
> SOAP
> REST
大多数人选择阻力较小的路径,即REST。这意味着简单易用的开发,使用HTTP的方式,使用缓存代理,更加人性化的结果等。
另一方面,SOAP比REST重量更大,并且还由大量的specifications备份。但是由于它更复杂(SOAP曾经是简单对象访问协议的首字母缩略词,这被证明是… NOT) SOAP不被很多人喜欢。
这两种方法都有效,两者都有优缺点。
例如,SOAP可以使用任何传输协议而不仅仅是HTTP(S),SOAP在提供安全性时提供更多选项,SOAP提供可靠的消息传递等。另一方面,REST允许许多不同类型的数据格式,REST允许更好支持浏览器,因为JSON格式,REST有更好的性能等等。
我不打算进入更多的细节,因为您可以在网络上找到很多比较SOAP和REST。我想强调的是,在某些情况下,一个比另一个更好,由你决定并根据你的具体情况来选择哪一个实现。
编辑:回答你的问题:
why use SOAP or REST? we can have web service without them?
那么,W3C将Web服务定义为“a software system designed to support interoperable machine-to-machine interaction over a network”。
好的,这是一个很好的定义。但是这不是SOAP / REST的定义,这个要求可以在communication protocol处被成功抛出。
因此,只要支持“可互操作的机器到机器交互”,基本上您可以使用所需的任何通信协议(甚至创建自己的)的Web服务。这也意味着除了SOAP或REST之外的其他东西(OK … REST不是一个协议,我只是在这里使用它作为参考来证明我的观点…如此裸露)。
但是您创建一个Web服务是因为您希望某些客户端使用您的服务。而您的客户在野外狂野西部(即网路:D),而那里的人也会说SOAP / REST。在那里你来说:“我们不喜欢在我们店里的SOAP和REST,我们喜欢像RPC,CORBA和我们自己独特的创建”骨破碎机10000“协议的东西,如果你想和我们做生意你去学习“骨破碎机10000”“。你的客户会说(眉毛抬起)“Yeaaaaah righttttt …..”。
(我在这里假设你的协议不会是完全超出SOAP / REST的事情:D)
所以,如果你不使用SOAP / REST,你将限制你的目标受众。就像英语一样。我不是英语母语者,是吗?那么这并不重要,因为我们能够用英语沟通。想在Icelandic试试吗? 。当我学习冰岛语时,你会等我,因为这不是我的母语吗?
正如我已经说过的那样,由您决定并选择实施的具体情况,由您决定并选择实施,但如果您从已知的技术堆栈中移除,那么您将丢弃这些技术:许多经验,资源,工具和通信选项。
作为一个关闭的例子,今天对SOAP协议有很多的支持,您可以从WSDL文件开始很容易地生成客户端。和presto …您的客户可以与您的Web服务通信。 “骨破碎机10000”会不会像这样简单?如果你写的工具,提供资源,支持等等…是的!但是,这将花费你的时间和金钱来创造一些已经发明并在今天广泛使用的东西。