API与Web服务

web服务和API有什么区别? 差异比用于传输数据的协议更多吗? 谢谢。

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

有关Web服务的示例,请参阅SOAP , REST和XML-RPC 。 有关另一种types的API的例子,用C语言编写的用于本地机器的API ,请参阅Linux内核API 。

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

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

你可以有一个API,与API交互的主要方法是通过web服务。

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

API

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

networking服务

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

在一般意义上,web服务 HTTP上的API。 他们经常使用JSON或XML,但也有其他一些方法。

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

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

例如调用GetNumberClicks(用户名)

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

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

如果Doubleclick将它们的接口作为一个Web服务来实现,他们会使用类似于Tomcat内部运行的Axis2。

远程用户将调用Web服务

例如调用GetNumberClicksWebService(用户名)

GetNumberClicksWebService服务将在本地调用GetNumberClicks。

API(应用程序编程接口),完整的forms本身表明它的一个接口,它允许你在一些其他应用程序接口的帮助或支持下为你的应用程序编写程序,这些应用程序接口公开了某些对你的应用程序有用的function。

例如,在您的网站上显示更新的货币汇率需要一些第三方接口进行编程,除非您计划自己的数据库使用汇率和定期更新。 这一套function是当其他人已经可以使用的时候,当他们想与其他人分享时,他们必须有一个端点与其他对这种交互感兴趣的人进行交stream,这样他们就可以通过networking部署到networking上,服务。 这个终点不过是他们的应用程序接口,你可以根据API进行编程。

API是基于代码的集成,而Web服务是基于消息的与具有诸如WSDL之类的契约的可互操作标准的集成。

把Web服务想象成一个web api。 API现在是一个通用的术语,所以Web服务是一个function的接口,通常是与业务相关的,可以通过各种协议从networking获得。

检查这个http://en.wikipedia.org/wiki/Web_service

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

另一个例子:谷歌地图的API与谷歌的方向API的Web服务,而前者服务(提供)的JavaScript文件的网站(这可以作为一个API作出新的function),后者是一个restWeb服务提供数据以json或xml格式),可以被处理(但不能用于api的意义上)。