WEB API和WEB服务有什么区别?

4

我在互联网上进行了大量搜索,但仍然没有清晰地了解到Web服务和Web API之间的区别?有些地方我看到说所有Web服务都是API,但不是所有API都是Web服务。为什么呢?

据我所知,两者都允许使用其他应用程序的功能。有人可以给我描述清晰的区别吗?


1
服务 = 公司,API = 你与公司交互的具体方式。例如,如果你的服务是麦当劳,那么 API 就是走到收银机点一个巨无霸汉堡的过程。 - Marc B
你是指微软的WebApi还是普通的Rest Api? - Frankely Diaz
3个回答

3

我一直在学习Web API(不仅仅是API)和Web服务之间的区别。

首先,我们知道事实上两者都使用Web作为通信工具,正如@Kris所说。

观看这两个视频时,都充当了客户要求Web服务器处理并传递响应的“中间人”(餐厅中的服务员)。

当我在寻找两者之间的实际差异时,通常大多数文章和视频都会进行无关的比较,“Web服务与API”的比较,因为他们将“Web”从“Web API”中排除掉。 例如,参见这篇文章,其中包含标题“Web API Vs Web Service....”,但包含子标题:

  • “API与Web服务的区别”
  • “Web服务与API服务的优缺点”
  • “Web Service vs API:用Scraping Robot的API为双方加速”

我能找到的唯一区别是,如果我们在.NET上下文中讨论这个问题。 这里有一个与此相关的问题帖子

总之,Web服务在SOAP协议中使用,而Web API通常以RESTful方式创建。更详细的答案在帖子中,但最终并没有回答所问的主要问题。

结论:在公共领域提出的问题没有明确的定义两者之间的区别,因此这两个术语在很大程度上是可以互换的。


1

所有的网络服务都是API。API是应用程序编程接口。但是有离线API,它们不是网络服务。从办公到网站,都有相应的API。API只是一种被定义的接口,可以控制/与某些软件进行通信。Web服务只是提供了通过Web进行连接的手段。

当谈论通信协议和数据格式的API时,还有更多可以讨论的内容,但你已经得到了基本的概念。


0

API(应用程序接口)是另一个程序可以与程序通信的接口。

在这个上下文中,Web服务是具有API的那些程序之一。 “Web”表示它可以通过Web访问,通常是通过HTTP。 服务通常具有明确定义的目的。

例如,日期Web服务的目的可能是提供当前日期。 我的服务的API将具有单个“端点”:获取日期。 然后,服务实现此API。 它以某种方式检索日期并将其发送回来。


API是访问Web服务的网关吗?我的意思是,Web服务是逻辑应用程序,而API是到达Web服务的方式?我是对的吗? - Hussain Rauf
是的,Web服务是在服务器上运行并等待请求的应用程序。API定义了您可以与Web服务通信的方式。我不会称其为网关,因为这个术语已经在IT中的不同上下文中使用了。 - Kris
谢谢Kris。我还有一个问题。很抱歉我问了太多的问题。我也读到Web服务需要网络才能运行,而API则不需要。为了访问Web服务,我们需要连接到像互联网这样的网络,但对于API,我们不需要。为什么API不需要连接网络? - Hussain Rauf
API是一个非常通用的术语。API可以是任何类型程序(或程序的一部分)的接口,包括Web服务。如果它是为Web服务提供的,则Web服务需要连接到互联网。如果API提供其他程序或同一程序的其他部分的接口,则不必涉及网络-连接可以由操作系统提供。 - Kris
我不知道 Office 套件的 API。但我猜是可以的。 - Kris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接