API与Web服务

时间:2009-04-30 18:35:40

标签: web-services api terminology

Web服务和API有什么区别?差异是否超过用于传输数据的协议? 谢谢。

9 个答案:

答案 0 :(得分:166)

API(应用程序编程接口)是第三方编写与其他代码交互的代码的手段。 Web服务是一种API,几乎总是通过HTTP运行(尽管有些像SOAP一样,可以使用备用传输,如SMTP)。 official W3C definition提到Web服务不一定使用HTTP,但几乎总是如此,除非另有说明,否则通常会假设。

有关特定网络服务的示例,请参阅SOAPRESTXML-RPC。有关另一种API的示例,一种用C语言编写以便在本地计算机上使用,请参阅Linux Kernel API

就协议而言,Web服务API几乎总是使用HTTP(因此是Web部分),并且肯定涉及通过网络进行通信。 API通常可以使用他们希望的任何通信方式。例如,Linux内核API使用Interrupts来调用组成其API的系统调用,以用于来自用户空间的调用。

答案 1 :(得分:53)

基本上,web服务是两台机器之间的通信方法,而API是一个暴露的层,允许你对某些东西进行编程。

您可以拥有一个API,与该API交互的主要方法是通过Web服务。

技术定义(由维基百科提供)是:

API

  

应用程序编程接口(API)是由库和/或操作系统服务提供的一组例程,数据结构,对象类和/或协议,以支持应用程序的构建。

Webservice

  

W3C将Web服务(也称为Web服务)定义为“旨在支持通过网络进行可互操作的机器对机器交互的软件系统”

答案 2 :(得分:39)

在一般意义上,Web服务 IS 是基于HTTP的API。它们通常使用JSON或XML,但也有一些其他方法。

答案 3 :(得分:10)

API是一个已发布的接口,它定义了组件A如何与组件B通信。

例如,Doubleclick有一个已发布的Java API,允许用户查询数据库表以获取有关其在线广告活动的信息。

e.g。调用GetNumberClicks(用户名)

要实现API,您必须将Doubleclick .jar文件添加到类路径中。电话是本地电话。

Web服务是API的一种形式,其中接口是通过WSDL定义的。这允许通过HTTP远程调用接口。

如果Doubleclick将其界面实现为Web服务,他们将使用在Tomcat中运行的Axis2。

远程用户将调用Web服务

e.g。调用GetNumberClicksWebService(用户名)

并且GetNumberClicksWebService服务将在本地调用GetNumberClicks。

答案 4 :(得分:7)

API(应用程序编程接口),完整的表单本身表明它是一个接口,允许您在某些其他应用程序接口的帮助或支持下为您的应用程序编程,该接口公开了对您的应用程序有用的某种功能。

显示您网站上更新的货币汇率需要一些第三方界面进行编程,除非您计划拥有自己的货币汇率数据库并定期更新。这组功能在其他人已经可用时,当他们想与其他人共享时,他们必须有一个端点与其他对此类交互感兴趣的人进行通信,以便他们通过网络在网上部署它。服务。这个终点只不过是他们的应用程序的接口,你可以编程,因此API。

答案 5 :(得分:4)

API是基于代码的集成,而Web服务是基于消息的集成,具有可与WSDL签订合同的可互操作标准。

答案 6 :(得分:3)

将Web服务视为Web API。 API现在是一个通用术语,因此Web服务是功能的接口,通常与业务相关,您可以通过各种协议从网络获取。

答案 7 :(得分:1)

选中此http://en.wikipedia.org/wiki/Web_service

正如所提到的链接那样,Web API是Web服务中的一种开发,很可能与Web 2.0相关,而基于SOAP的服务则被基于REST的通信所取代。请注意,REST服务不需要XML,SOAP或WSDL服务API定义,因此这与传统Web服务有很大不同。

答案 8 :(得分:0)

另一个例子:google map api vs google方向api web服务,而前者服务(传递)javascript文件到站点(然后可以用作api来创建新功能),后者是Rest Web服务提供可以处理的数据(以json或xml格式)(但不能用于api意义上)。