it-swarm.cn

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

我听说过很多有关Web服务和Web API的信息,它们之间有什么区别还是相同?

86
Harish Kurup

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请求。

89
Slawek

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

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

20
Berin Loritsch

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

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

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

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

6
Aaron McIver