返回博客
工程
Robert MunceanuLast updated on Apr 28, 20261 min read

傻瓜应用程序接口:你需要知道的一切

傻瓜应用程序接口:你需要知道的一切

正如人类通过口头交流、书信或手势进行沟通一样,其他生物也有自己的交流方式。但你是否曾想过,应用程序是如何实现这一点的呢?

应用程序通过一种中介软件相互交流,例如应用程序编程接口(简称API)。每当你通过Spotify听音乐,或在Netflix上追剧时,其实都在间接使用API。

这本《API入门指南》将向你展示API对我们的生活产生了多大的影响,尽管大多数人对此一无所知。让我们开始吧!

什么是API

API(应用程序接口)是一组功能集合,允许应用程序访问数据并与外部软件组件、操作系统或微服务进行交互。简而言之,API 负责将用户请求传递给系统,并将系统的响应反馈给用户。

API之所以被广泛使用,是因为它们能极大简化流程,并加速其他系统和应用程序的开发进程。例如,如果您正在开发自己的软件,并希望集成人脸识别或支付处理功能,使用API是最佳选择。您只需将您的软件与另一个软件连接起来即可。API文档会提供相关指导,帮助开发者实现所需的功能。

使用 API 时,您无需处理任何源代码,甚至无需理解其工作原理。听起来不错,对吧?太棒了,让我们来看看 API 究竟是如何实现这一点的。

API是如何工作的

不妨将 API 视为您的应用程序与服务器之间的“中间人”。您指示应用程序为您执行某项操作;随后,应用程序会通过 API 与 Web 服务器进行通信,告知其具体任务。这一操作被称为请求。之后,服务器会发送响应,由“中间人”将其传递给您的应用程序。

让我们看一个更具体的例子。 您走进一家餐厅,选了一张视野开阔的桌子,然后等待服务员为您点餐。在此情境中,服务员就是您的“中间人”,因为厨师无法直接接收您的订单——他正在厨房里准备其他餐点。您向服务员发出请求,服务员将该请求转达给厨房,随后收到响应(即您的餐点),并将其送至您的餐桌。请享用美食!

API 本身也是对 Web 服务器的抽象,因为应用程序并不了解“厨房”里发生了什么,只知道最终结果会是什么。终端用户知道,如果他从菜单上点了一份蛋糕,他就会得到一份蛋糕。API 有许多类型,取决于它们的设计目的或发布策略。让我们来看看这些区别。

按用例划分的 API

API 非常实用。正如上文所述,为了实现特定目标,各种软件和应用程序之间的通信至关重要,因此 API 的设计基于您想要实现的目标。让我们来看几个例子:

  • 数据库 API 使应用程序与数据库管理系统之间的通信更加便捷。例如,Firebase 是 Google 旗下的一款移动网络应用平台,它允许开发者无需管理服务器或编写服务器端代码,即可轻松地实时同步和存储数据。
  • 操作系统 API。就连操作系统也拥有相当数量的 API,例如 Windows APILinux 内核用户空间 API。您还可以查阅 Apple 开发者文档中针对 macOS 和 iOS 提供的 API。
  • 远程 API 通过通信网络进行交互。最常见的通信网络是互联网,因此 API 通常基于 Web 标准进行设计。但这并不意味着所有远程 API 都是 Web API。不过,Web API 通常是远程的,通常使用 HTTP 进行请求消息传输,并定义响应消息的结构。这些消息最好采用 XML 或 JSON 格式,因为其他应用程序更容易解析这些信息。
  • Web API 是最常用的 API,因为它们通过 HTTP(超文本传输协议)从 Web 应用程序发送请求,并从服务器接收响应。开发人员在其应用或网站中利用此类 Web API,从而增强功能并提升用户体验,例如集成 FacebookGoogle 登录方式,或使用 Google Map API 添加地图。

按发布策略划分的 API

部分 API 仅供内部使用,这在大企业中尤为常见。另一些则被设计为产品,旨在与客户使用的任何软件进行集成。主要类别如下:

私有API主要在组织内部使用,将其集成到员工使用的系统和应用程序中,以优化内部运营。即使这些API看似对公众开放,其接口仍仅限组织内部人员使用,且组织对API拥有完全控制权。这也能为组织节省部分成本。

合作伙伴API通过与一个或多个商业伙伴共享,可提供额外的收入来源。发布方与合作伙伴之间会签订相关协议。合作伙伴API还能为服务增添价值,并为交叉销售开辟渠道。

公共API向所有第三方开发者开放。此类API无需用户与发布者之间存在紧密关系,既能增加收入来源,又能帮助触达更广泛的受众并提升流量,同时支持各类公益事业和多元化的商业计划。公共API可分为以下两类:

  • 开放型:此类 API 可供任何人自由使用,这意味着不存在限制性条款或条件,使用 API 无需发布者的许可,也无需支付费用。它们为开发者提供公开文档,可用于测试和创建应用程序。
  • 商业型:使用此类API需支付订阅费。为了让用户测试和评估产品,发布商通常提供免费试用,以便客户决定是否购买订阅。

其中,SOAP API 和 REST API 尤为值得关注,因为它们应用非常广泛。让我们来看看这些缩写背后的概念:

SOAP API

SOAP(简单对象访问协议)API 是一种 Web 通信协议,用于通过 HTTP/HTTPS 交换信息和结构化数据。与 REST API 不同,SOAP 仅支持 XML 数据格式。尽管大多数 Web 数据交换通过 REST 实现,但这并不意味着 SOAP 会很快被淘汰,因为它高度标准化、安全性更高,并且有时支持自动化。

XML(可扩展标记语言)是一种独立于软件或硬件的数据存储与传输工具。它拥有一套规则,用于将消息结构化为既可供人类阅读又可供机器解析的记录。如下文所示,其结构与 HTML 相似,但 XML 语言没有预定义的标签,因此作者必须同时定义标签和文档结构。

REST API

表征状态转移(REST)是由 Roy Fielding 于 2000 年提出的一种架构风格,用于设计基于 HTTP 的松耦合应用程序,常用于 API 开发。要被称为 RESTful 服务,必须遵守这些约束条件

开发人员更倾向于使用 REST 替代 SOAP,因为它无需编写大量代码即可完成简单任务,而 SOAP 则要求每次都创建所需的 XML 结构。 RESTful Web 服务采用不同的方法。它将信息视为由唯一 URL 表示的资源。因此,若要请求特定资源,您必须通过 GET、POST、PUT、HEAD、DELETE、PATCH 和 OPTIONS 等 HTTP 方法提供其 URL。您可在此处了解更多关于这些方法的信息!有时,您可能需要随 URL 一起发送额外数据(如访问密钥)才能获取所需内容。

与 SOAP 不同,REST 并不局限于使用 XML 提供响应。您可以获取 JSON、XML、CSV、纯文本和 HTML 等不同格式的数据,这些格式根据您应用程序所使用的语言更容易进行解析。

以下是 JSON 与 XML 的对比:

您经常会听到开发者讨论不同 API 的功能,但还有另一个重要却鲜少被提及的方面:文档。若缺乏其中的知识,API 无异于一堆象形文字。

API 文档

API 文档并非像电子游戏教程那样,可以漫不经心地跳过,并在实践中摸索其机制。文档中包含了关于如何有效使用和集成该 API 的指导说明。

即使某个 API 对开发者而言具有革命性意义,但若文档质量低劣或缺乏对其工作原理的了解,它也将变得毫无用处。

编写精良的文档有助于节省技术支持的时间和成本。新用户的入门过程将变得更加轻松,他们在使用 API 时通常无需寻求技术支持。而拙劣的文档则会让开发者和发布商的技术支持团队感到相当沮丧。

部分文档可能提供演示部分或实践环境,供您进行测试并查看实时结果。这有助于开发者直观了解 API 的功能,从而加深理解。

结语

希望我们的《API入门指南》能帮助您更好地理解API的工作原理,以及它们在信息技术领域的重要性。

无论是企业级还是个人使用的应用和软件产品,其数量都在不断增长,它们都需要通信和资源交换的方法。API 满足了这一需求,并在推动技术发展方面发挥着关键作用。

请阅读这篇关于网络爬虫 API 的文章,了解一些 Web API 的实际应用案例!

关于作者
Robert Munceanu, 全栈开发工程师 @ WebScrapingAPI
Robert Munceanu全栈开发工程师

罗伯特·蒙塞阿努(Robert Munceanu)是 WebScrapingAPI 的全栈开发工程师,他在产品各领域均有贡献,并协助构建了支持该平台的可靠工具和功能。

开始构建

准备好扩展您的数据收集规模了吗?

加入2,000多家企业,使用WebScrapingAPI在无需任何基础设施开销的情况下,以企业级规模提取网络数据。