API 和 Web 服务有什么区别?

问题描述 投票:0回答:10

据我所知,API 和 Web 服务用于从其他网站获取数据。

那么它们有什么区别呢?

任何帮助!

编辑

有人可以用正确的例子解释一下吗?

什么是 Twitter 和 Facebook API?我们可以说这只是访问其数据的功能或网络服务吗?

java .net ruby web-services
10个回答
19
投票

Web 服务只是 HTTP 服装中的 API。


11
投票

Web 服务是通过互联网提供的东西,供另一台计算机(而不是人类)直接使用。

API 是一种应用程序编程接口。网站应用程序可能通过 Web 服务公开 API。然而,像 Excel 或 Word 这样的桌面应用程序具有与 Web 无关的 API(它们具有基于 VBA 和 COM 的 API)。

同样,服务器应用程序(例如 Joomla)可能有一个基于 PHP 的 API,可以在服务器内部使用 - 即。不一定涉及网络服务。


7
投票

所有 Web 服务都是 API,但并非所有 API 都是 Web 服务。一个是另一个的子集。


7
投票
  1. Web 服务是封装在 HTTP 中的 API。
  2. 所有 Web 服务都是 API,但 API 不是 Web 服务。
  3. Web 服务可能无法执行 API 将执行的所有操作。
  4. Web 服务需要网络,而 API 的运行不需要网络。

6
投票

API 不需要基于网络。

Web 服务也可能无法执行人们期望从完整 API 获得的所有操作。


6
投票

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”)。


4
投票

Web 服务可以被视为一种 API。但目前,你应该忘记这一点,只专注于学习 API 到底是什么;与软件交互的方法的精确定义。有时,这涉及通过网络发送数据,但通常我们谈论的是可以从程序调用的函数。

例如,Ruby 中有一个名为

FileUtils.rm
的函数。这是API;当您从 Ruby 脚本调用该函数时,它看起来总是一样的。然后是API的实现;这就是实际删除文件的代码 - 它在 Ruby 的每个实现中可能看起来完全不同,但您(通常)不关心这一点,因为您只处理 Ruby API。


3
投票

可通过互联网获得网络服务。您无需实际拥有课程即可获取信息,也不知道它如何使用 http 和soap 协议工作。

API 是一种库(类集),您可以使用其中可用的函数在应用程序中执行某些操作。


2
投票

查看有关 Web API 的维基百科条目 http://en.wikipedia.org/wiki/Api#Web_APIs

写得很好,虽然与这里其他人所说的非常一致。


2
投票

通过网络公开的 API 是 Web 服务

© www.soinside.com 2019 - 2024. All rights reserved.