Web 服务与 API
什么是Web服务?
什么是API?
Web 服务和 API 的主要区别
API 和 Web 服务这两个术语经常被混淆,你可能经常听到它们被交替使用。虽然它们之间确实存在一些重叠之处,但其概念却截然不同。因此,让我们从基础知识入手,帮助你理解它们之间的异同。
什么是Web服务?
Web 服务是 Web 应用程序的一个组件。它是一组技术和规则,允许 Web 或互联网上的两个或多个组件相互交互。这些组件可以是 Web 服务器,也可以是 Web 浏览器。根据万维网联盟 (W3C) 的定义,Web 服务提供了一种在不同框架或平台上运行的软件应用程序之间进行通信的标准方式。Web 服务是一个旨在支持机器之间通过网络进行互操作的系统。因此,Web 服务需要网络才能运行。
首先使用的Web服务是WSDL(Web服务描述语言),它是一组用于描述Web服务的规则,以XML编写。除此之外,Web服务大多使用SOAP(简单对象访问协议),这是一种通过HTTP(超文本传输协议)请求共享XML数据的消息传递协议。它主要与面向服务的架构(SOA)相关联。
总的来说,Web 服务本质上是一种连接技术,它使两个或多个组件(也称为服务)能够互操作。它们是 Web 上各个组件之间的桥梁。每个组件或程序都执行其他程序所需的功能,例如数据库操作、计算或脚本执行。从技术角度讲,Web 服务通过 HTTP 请求来回传输数据。这些请求通常以 XML 或 JSON 格式返回文本数据。
那么API究竟是什么呢?让我们来了解一下!
什么是API?
API 是应用程序编程接口(Application Programming Interface)的缩写。它是一组由库或操作系统提供的例程、对象类、数据结构或协议,用于支持应用程序开发。它使原本互不相连的两个实体能够以标准化的方式进行通信。API 类似于一个信使,它接收请求,告知系统用户想要执行的操作,然后返回响应。
为了帮助您理解 API 的概念,我们来看一个例子。您可能很熟悉在线搜索航班或火车票的过程。在应用程序或网站上,您会看到一个下拉菜单,可以选择出发城市、日期、目的地、返程日期、舱位等级和其他选项。要预订航班或火车票,您需要分别与航空公司或铁路公司的数据库交互,以查询是否有空位。但是,如果您使用的不是铁路或航空公司的网站或应用程序(它们会汇总来自各自数据库的信息),而是第三方旅行网站,该网站会查询不同的数据库并提供您所需的信息,那会怎样呢?在这种情况下,该网站会通过 API 与您进行交互,从互联网上的不同系统获取信息,以查询价格、空位情况并预订座位。之后,它会将响应返回给旅行网站,最终显示给您。
所以,API可以是任何形式的东西。它唯一的要求是提供一种与软件组件通信的方式。但它与Web服务有何不同呢?
Web 服务和 API 的主要区别
Web 服务与 API。显然,Web 服务和 API 都是通信方式。它们之间的基本区别如下:
- Web 服务提供两台机器之间通过网络进行的交互,而 API 则充当两个不同应用程序之间的接口,以实现互操作性。
- Web 服务需要网络连接,而 API 的运行可能需要网络,也可能不需要网络。
- 虽然 API 可以使用任何协议或设计模式,但 Web 服务主要使用 SOAP,有时也使用 REST、XML-RPC 或 UDDI。
- 许多公共 API 都具有透明性,提供开放的文档和自助服务门户,方便开发者快速上手。然而,Web 服务通常只针对特定模式提供特定的数据或功能。
- 此外,每个 Web 服务都是一个 API,但并非所有 API 都是 Web 服务,因为 Web 服务可能无法执行 API 可以执行的所有操作。
- API 具有高效、覆盖范围广、个性化、数据所有权、省时、编程语言无关、易于与 GUI 集成等特点;Web 服务提供松耦合、同步和异步功能、文档交换支持,同时支持远程过程调用。
- 由于 Web 服务需要使用 SOAP 协议在网络上传输数据,因此它不具备轻量级架构。另一方面,API 则具有轻量级架构,因为它们所需的大部分库和数据都运行在 .NET 框架上。
- Web 服务仅支持 HTTP,而 API 支持 HTTP/s、URL 请求/响应标头等。
既然您已经了解了 API 是一种接口,它允许您基于其他应用程序的数据和功能进行构建,那么 Web 服务则是一种基于网络的资源,用于完成特定任务。API 和 Web 服务的核心功能都非常实用。如果您想为您的企业开发应用程序,请聘请在相关领域拥有丰富经验和知识的开发人员。
来源:Decipher
文章来源:https://dev.to/priyanshi_sharma/web-services-vs-api-h96
