Web API和Web服务之间的区别?


Answers:


86

Web服务-这是W3C定义的标准,因此可以半自动或自动(WSDL / UDDI)对其进行访问。整个过程都是基于XML的,因此任何人都可以调用它。服务的每个方面都得到了很好的定义。其中有参数描述标准,参数传递标准,响应标准,发现标准等。您可能可以编写2000页的书来描述该标准。甚至还有一些用于执行“标准”事情的“其他”标准,例如身份验证。

尽管事实上自动调用和发现几乎不起作用,因为客户端非常差,您不能真正保证可以从任何客户端调用任何服务。

Web API通常以HTTP / REST的形式完成,未定义任何内容,例如可以输出。JSON / XML,输入可以是XML / JSON /或纯数据。没有任何标准=>没有自动调用和发现。您可以在文本文件或PDF中提供一些描述,也可以在Windows-1250中而不是unicode中返回数据。为描述标准,它是2页的小册子,其中包含一些简单的信息,您将定义其他所有内容。

Web正在转向Web API / REST。Web服务确实没有Web API更好。开发非常复杂,而且它们要消耗更多的资源(带宽和RAM)...并且由于所有数据转换(REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA)非常慢。

例如。在WebAPI中,您可以打包数据,将其压缩后发送,然后在客户端上进行解压缩和解压缩。在SOAP中,您只能压缩HTML请求。


1
谢谢@Slawek,你解释得更好..也感谢这个例子...
Harish Kurup

2
实际上,我听到人们将SOAP和REST都称为“ Web服务”。Web API确实倾向于使用REST。
本·瑟利

@Slawek,您说的是2000页和2页,它本身说明了降低的复杂性。好办法,说这只是..
Jaqen H'ghar

20

Web服务允许通过HTTP进行机器对机器的通信。Web API是使用REST约定的Web服务的子集(概述Wikipedia文章)。概念肯定重叠。我相信大多数人在Web服务中仍然存在一个链接-> SOAP / XML-RPC,这可能会不必要地使事情变得混乱。

最后,您将不得不问几个问题以弄清人们的意思。不是每个人都可以区分或互换使用这些术语。


感谢ü@Berin Loritsch,是的这就是正确的它会导致API和WS ..之间的混淆
哈里什Kurup

6

Web服务是W3C所述的针对问题域的定义架构和方法。

Web服务提供了在各种平台和/或框架上运行的不同软件应用程序之间进行互操作的标准方法

Web API是一个概念,它抽象了如何实现该概念的方法。

用外行的话来说... Web API是驱动程序,而WS是BMW N53

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.