Web API和Web服务有什么区别?


136

Web APIWeb服务之间有什么区别吗?还是它们相同?


另请参阅:API与
Web服务


3
API是已发布的接口,而服务是在后端运行的实现。
拉西卡·佩雷拉

1
请仔细阅读答案。其中一些过时或无效
Menuka Ishan

Answers:


71

Web服务通常提供WSDL,您可以从中自动创建客户端存根。Web服务基于SOAP协议。ASP.NET Web API是更新的Microsoft框架,可帮助您构建基于REST的接口。响应可以是JSON或XML,但是无法自动生成客户端,因为Web API不提供Web Service的WSDL这样的服务描述。因此,取决于您的要求,您要使用哪种技术。也许甚至WCF都能更好地满足您的要求,只需查看MSDN文档即可。


7
Web服务不一定基于SOAP协议。
horcrux

3
技术上过时的答案
阿伦·拉杰

4
“ ASP.NET Web API”是Microsoft框架,而不是“ Web API”本身。
阿米尔·侯赛因·艾哈迈迪

过时的回答,请访问此链接microsoft-techies.blogspot.com/2014/03/...
加尼甚Karewad

41

Web服务和Web API之间的基本区别

网络服务:

1)这是基于SOAP的服务,并以XML返回数据。

2)它仅支持HTTP协议。

3)它不是开源的,但是可以被任何了解XML的客户端使用。

5)它需要SOAP协议来通过网络接收和发送数据,因此它不是轻量级的体系结构。

Web API:

1)Web API是基于HTTP的服务,默认情况下返回JSON或XML数据。

2)它支持HTTP协议。

3)它可以托管在应用程序或IIS中。

4)它是开源的,任何了解JSON或XML的客户端都可以使用。

5)它具有轻巧的架构,适合带宽有限的设备,例如移动设备。


7
Web服务可以托管在很多地方,不仅限于IIS
Ignacio Soler Garcia

3
实际上,所有观点都是错误的。我不明白40个用户如何投票。
horcrux

1
@horcrux我同意。Web服务不一定是基于SOAP的服务。
瑞安·希灵顿

我见过最困惑的答案。
mhrsalehi

23

API与Web服务

刚刚粘贴了链接文章的摘要:

摘要:

  1. 所有Web服务都是API,但所有API都不是Web服务。

  2. Web服务可能不执行API可能执行的所有操作。

  3. Web服务仅使用三种使用样式:SOAP,REST和XML-RPC进行通信,而API可以使用任何样式进行通信。

  4. Web服务始终需要网络来进行操作,而API不需要网络来进行操作。

  5. API有助于直接与应用程序接口,而Web服务是一种...

阅读更多:API和Web服务之间的区别 之间的区别 API与网络服务http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

请参阅上面的链接以获取完整答案。


10
但是,问题是关于WebAPI和WebService之间的区别,而不是“ API”之间的区别
Kulbhushan Singh

此外,点3是不正确的。这具有误导性,只会使人们对“ SOAP vs. REST”主题感到困惑。
horcrux

9

有关更多详细信息,请访问此链接 图表


2
为什么?从这张图片看来,SOAP Web服务似乎无法在智能手机上甚至在台式机上使用?真?有人强迫您在这些平台上读取JSON而不是XML?
AndreaCi

如果读取xml,则并不意味着SOAP基本服务REST还支持命令分隔值(CSV),JavaScript对象表示法(JSON)和真正简单的联合供稿(RSS)。
Adiii

7

如果需要,Web服务是Web API。具体来说,Web API通常表示RESTful(基于HTTP)的Web服务,Web Service通常表示SOAP + WSDL(+ HTTP或SMTP或JMS ..)。

RESTful Web服务通常与Web Services(WSDL,SOAP)相对,但是最近它引入了术语RESTful Web服务(大写的“ W”),表示RESTful + WSDL + SOAP。

请查看此图表以了解三个概念之间的差异:http : //www2.mokabyte.it/cms/figureproviderservlet? figureId= IUS- 6NS-OBV_7f000001_19624184_5621ef4e-- Fig02.jpg

希望能帮助到你!


4

Web服务与Web API完全相同-仅在基础数据格式方面有所限制。两者都使用HTTP协议,并且都允许创建RESTful服务。并且不要忘记使用其他协议,例如JSON-RPC-也许它们更合适。


1
如果现在有限制,那不是“绝对相同”吗?
Ojonugwa Jude Ochalifu

0

在ASP.Net的上下文中,Web API是一个控制器,其基类是ApiController,并且不使用视图。Web服务是从WebService派生的类,并具有自动WSDL生成功能。默认情况下,它是SOAP api,但是您也可以通过添加ScriptServiceAttribute来使用JSON 。


0

API和Web服务用作通信手段。

唯一的区别是Web服务促进了网络上两台计算机之间的交互。API充当两个不同应用程序之间的接口,以便它们可以彼此通信API是一种方法,第三方供应商可以通过该方法编写与其他程序轻松接口的程序。Web服务被设计为具有一个接口,该接口通常以Web服务描述语言(WSDL)中指定的机器可处理格式进行描述

所有Web服务都是API,但并非所有API都是Web服务。

Web服务仅仅是包装在HTTP中的API。


本文在此提供了有关Web服务和API的丰富知识。



-2

Web服务和Web API之间的区别在这里得到了很好的解释:

/software/38691/difference-between-web-api-and-web-service

链接中的文字:

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


-2

所有WebServices都是API,但所有API都不是WebServices,Web上公开的API称为Web服务。


Web服务是W3C定义的标准,它是文档齐全的服务,供第三方软件通过XML(WSDL / UDDI)进行交互。Web API是HTTP上的API,没有很好的文档说明,具有其自己的标准。通常,API可以或不可以通过Internet访问与其他应用程序对话,也可以具有其他协议,例如,用于系统调用以与OS中的终端/ cmd对话的API。
伊玛目·布克斯

-3

两件事很容易理解,

  1. API:这是应用程序上的一层,可以在本地服务其他应用程序请求。
  2. Webs Service:是一个API,可以通过Web或Internet上的远程系统通过网络服务请求和响应。

注意:所有Web服务都是API的,但并非所有API都是Web服务的


在本地以及在网络上
Pavan T
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.