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

时间:2013-10-12 16:06:11

标签: web-services asp.net-web-api terminology

网络API 网络服务之间有什么区别吗?或者他们是一样的吗?

13 个答案:

答案 0 :(得分:70)

Web服务通常提供WSDL,您可以从中自动创建客户端存根。 Web服务基于SOAP protocol。 ASP.NET Web API是一个较新的Microsoft框架,可帮助您构建REST based interfaces。响应可以是JSON或XML,但是无法自动生成客户端,因为Web API不提供Web服务中的WSDL之类的服务描述。 因此,这取决于您的要求您要使用哪种技术。甚至可能WCF更符合您的要求,只需查看MSDN文档即可。

答案 1 :(得分:39)

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)它具有轻量级架构,适用于带宽有限的设备,如移动设备。

答案 2 :(得分:21)

API vs Web Service

刚粘贴链接文章的摘要:

  

要点:

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

  2.   
  3. Web服务可能无法执行API将执行的所有操作。

  4.   
  5. Web服务仅使用三种使用方式:SOAP,REST和XML-RPC   沟通,而API可以使用任何风格进行沟通。

  6.   
  7. Web服务总是需要网络才能运行,而API不需要网络来运行。

  8.   
  9. API有助于直接与应用程序进行交互,而Web服务则是......

  10.   

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

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

答案 3 :(得分:8)

有关详细信息,请访问此链接 Diagram

答案 4 :(得分:6)

Web服务(如果需要)是Web API。具体而言,Web API通常意味着RESTful(基于HTTP)的Web服务,Web Service通常意味着SOAP + WSDL(+ HTTP或SMTP或JMS ..)。

简单地说,REST服务Web服务与Web服务(WSDL,SOAP)相反,但最近引入了RESTful Web服务(大写“W”),这意味着RESTful + WSDL + SOAP ..

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

希望它有所帮助!

答案 5 :(得分:4)

Web服务与Web API完全相同 - 只是在底层数据格式方面受到更多限制。两者都使用HTTP协议,两者都允许创建RESTful服务。 并且不要忘记像JSON-RPC这样的其他协议 - 也许它们更合适。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

指定的机器可处理格式描述的接口。

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

Web服务仅仅是用HTTP包装的API。


这篇here文章提供了有关Web服务和API的丰富知识。

答案 8 :(得分:0)

  1. Web 服务是用于在系统之间交换数据的开源协议和标准的集合 或应用程序,而 API 是一种软件接口,允许两个应用程序相互交互 无需任何用户参与。
  2. Web 服务用于 REST、SOAP 和 XML-RPC 进行通信,而 API 用于任何风格的通信。
  3. Web 服务仅支持 HTTP 协议,而 API 支持 HTTP/HTTPS 协议。
  4. Web 服务支持 XML,而 API 支持 XML 和 JSON。
  5. 所有网络服务都是 API,但所有 API 都不是网络服务。

答案 9 :(得分:-2)

嗯,TMK可能在微软世界中是正确的,但在包括Java / Python /等在内的所有软件世界中,我相信没有区别。他们是一回事。

答案 10 :(得分:-2)

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

https://softwareengineering.stackexchange.com/questions/38691/difference-between-web-api-and-web-service

链接中的文字:

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

尽管自动调用和发现几乎没有用,因为客户端相当差,而且您无法保证可以从任何客户端调用任何服务。

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

Web正在转向Web API / REST。 Web Services实际上并不比Web API好。开发非常复杂,它们占用更多资源(带宽和RAM)......并且因为所有数据转换(REQUEST-&gt; XML-&gt; DATA-&gt; RESPONSE-&gt; XML-&gt; VALIDATION-&gt;转换 - &gt; DATA)非常慢。

EG。在WebAPI中,您可以打包数据,将其压缩并在客户端上解压缩+解包。在SOAP中,您只能压缩HTML请求。

答案 11 :(得分:-2)

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

答案 12 :(得分:-3)

有两件事很容易理解,

  1. API:它是应用程序上的一个层,可以为其他应用程序提供服务 请求本地。
  2. 网络服务:是一种可以提供请求和响应的API 通过网络或互联网形成网络远程系统。
  3. 注意: 所有Web服务都是API,但并非所有API都是Web服务