基本上,webservice是两台机器之间的一种通信方法,而API是一个公开的层,允许你对某些东西进行编程。
你可以有一个API,而与该API交互的主要方法是通过web服务。
技术定义(维基百科提供)是:
应用程序编程接口(API)是库和/或操作系统服务提供的一组例程、数据结构、对象类和/或协议,以支持应用程序的构建。
Web服务(Web service)被W3C定义为“一种软件系统,旨在支持网络上可互操作的机器对机器交互”。
把Web服务看作Web api。API现在是一个通用术语,因此web服务是功能的接口,通常与业务相关,您可以通过各种协议从网络获得它。
在一般意义上,webservice 是是一个基于HTTP的API。它们通常使用JSON或XML,但也有一些其他方法。
API(应用程序编程接口)是第三方可以编写与其他代码接口的代码的方法。Web服务是一种API,它几乎总是在HTTP上运行(尽管有些API,如SOAP,可以使用替代传输,如SMTP)。W3C官方定义提到Web服务不一定使用HTTP,但这几乎总是如此,通常是假设的,除非另有说明。
有关web服务的具体示例,请参见肥皂、休息和xml - rpc。有关另一种类型API的示例,即用C编写的用于本地机器的API,请参阅Linux内核API。
就协议而言,Web服务API几乎总是使用HTTP(因此是Web部分),并且肯定涉及到网络上的通信。api通常可以使用它们希望的任何通信方式。例如,Linux内核API使用中断来调用组成其API的系统调用,用于从用户空间调用。
API是一个已发布的接口,它定义了组件a如何与组件B通信。
例如,Doubleclick发布了一个Java API,允许用户查询数据库表以获得有关其在线广告活动的信息。
例如,调用GetNumberClicks(用户名)
要实现API,必须将双击.jar文件添加到类路径中。这是本地呼叫。
web服务是API的一种形式,其中接口是通过WSDL定义的。这允许通过HTTP远程调用接口。
如果Doubleclick将其接口实现为web服务,那么他们将在Tomcat中使用类似Axis2的东西。
远程用户将调用web服务
例如调用GetNumberClicksWebService(用户名)
GetNumberClicksWebService服务将在本地调用GetNumberClicks。
检查这个http://en.wikipedia.org/wiki/Web_service
正如链接所提到的,Web API是Web服务中的一种开发,它很可能与Web 2.0相关,而基于SOAP的服务则被基于REST的通信所取代。请注意,REST服务不需要XML、SOAP或WSDL服务api定义,因此这与传统web服务有很大不同。
另一个例子:谷歌地图api vs谷歌方向api web服务,前者服务(交付)javascript文件到站点(然后可以用作api来制作新功能),后者是一个Rest web服务交付数据(json或xml格式),可以处理(但不用于api意义上)。
API是基于代码的集成,而web服务是基于消息的集成,与具有WSDL等契约的可互操作标准进行集成。
API(应用程序编程接口),完整的形式本身表明它是一个接口,允许你在其他应用程序接口的帮助或支持下为你的应用程序编程,它公开了一些对你的应用程序有用的功能。
例如,在你的网站上显示最新的货币汇率需要一些第三方接口来编程,除非你计划有自己的货币汇率数据库并定期更新。这组功能是当其他人已经可用时,当他们想要与他人共享时,他们必须有一个端点来与对这种交互感兴趣的其他人通信,这样他们就可以通过web服务的方式将其部署到web上。这个终点只是他们的应用程序的接口,你可以根据API编程。