据我所知,API 和 Web 服务用于从其他网站获取数据。
那么它们有什么区别呢?
任何帮助!
编辑
有人可以用正确的例子解释一下吗?
什么是 Twitter 和 Facebook API?我们可以说这只是访问其数据的功能或网络服务吗?
Web 服务只是 HTTP 服装中的 API。
Web 服务是通过互联网提供的东西,供另一台计算机(而不是人类)直接使用。
API 是一种应用程序编程接口。网站应用程序可能通过 Web 服务公开 API。然而,像 Excel 或 Word 这样的桌面应用程序具有与 Web 无关的 API(它们具有基于 VBA 和 COM 的 API)。
同样,服务器应用程序(例如 Joomla)可能有一个基于 PHP 的 API,可以在服务器内部使用 - 即。不一定涉及网络服务。
所有 Web 服务都是 API,但并非所有 API 都是 Web 服务。一个是另一个的子集。
API 不需要基于网络。
Web 服务也可能无法执行人们期望从完整 API 获得的所有操作。
API(应用程序编程接口)是程序员公开供其他程序员使用的方法和类的列表,因此,例如,如果您在程序中使用 Twitter 或 Facebook API,则可以使其与 Twitter 和 Facebook 合作,并执行许多操作有用的东西。 :-)
公开 API 的方法有很多种(Java 中的 JAR 文件或 RMI、.net 程序集、COM 对象、C/C++ 中的 DLL 和 .H 文件、HTTP 上的 JSON、HTTP 上的 XML,许多自制方法)。
Web 服务只是公开 API 的另一种方式,在这种情况下,公开方法的实际执行不是在您的计算机上完成的,而是在 Internet 上的其他计算机上(在 Web 上 - 因此称为“WebServices”)。
Web 服务可以被视为一种 API。但目前,你应该忘记这一点,只专注于学习 API 到底是什么;与软件交互的方法的精确定义。有时,这涉及通过网络发送数据,但通常我们谈论的是可以从程序调用的函数。
例如,Ruby 中有一个名为
FileUtils.rm
的函数。这是API;当您从 Ruby 脚本调用该函数时,它看起来总是一样的。然后是API的实现;这就是实际删除文件的代码 - 它在 Ruby 的每个实现中可能看起来完全不同,但您(通常)不关心这一点,因为您只处理 Ruby API。
可通过互联网获得网络服务。您无需实际拥有课程即可获取信息,也不知道它如何使用 http 和soap 协议工作。
API 是一种库(类集),您可以使用其中可用的函数在应用程序中执行某些操作。
查看有关 Web API 的维基百科条目 http://en.wikipedia.org/wiki/Api#Web_APIs。
写得很好,虽然与这里其他人所说的非常一致。
通过网络公开的 API 是 Web 服务