正如人类通过口头交流、书信或手势进行沟通一样,其他生物也有自己的交流方式。但你是否曾想过,应用程序是如何实现这一点的呢?
应用程序通过一种中介软件相互交流,例如应用程序编程接口(简称API)。每当你通过Spotify听音乐,或在Netflix上追剧时,其实都在间接使用API。
这本《API入门指南》将向你展示API对我们的生活产生了多大的影响,尽管大多数人对此一无所知。让我们开始吧!

正如人类通过口头交流、书信或手势进行沟通一样,其他生物也有自己的交流方式。但你是否曾想过,应用程序是如何实现这一点的呢?
应用程序通过一种中介软件相互交流,例如应用程序编程接口(简称API)。每当你通过Spotify听音乐,或在Netflix上追剧时,其实都在间接使用API。
这本《API入门指南》将向你展示API对我们的生活产生了多大的影响,尽管大多数人对此一无所知。让我们开始吧!
API(应用程序接口)是一组功能集合,允许应用程序访问数据并与外部软件组件、操作系统或微服务进行交互。简而言之,API 负责将用户请求传递给系统,并将系统的响应反馈给用户。
API之所以被广泛使用,是因为它们能极大简化流程,并加速其他系统和应用程序的开发进程。例如,如果您正在开发自己的软件,并希望集成人脸识别或支付处理功能,使用API是最佳选择。您只需将您的软件与另一个软件连接起来即可。API文档会提供相关指导,帮助开发者实现所需的功能。
使用 API 时,您无需处理任何源代码,甚至无需理解其工作原理。听起来不错,对吧?太棒了,让我们来看看 API 究竟是如何实现这一点的。
不妨将 API 视为您的应用程序与服务器之间的“中间人”。您指示应用程序为您执行某项操作;随后,应用程序会通过 API 与 Web 服务器进行通信,告知其具体任务。这一操作被称为请求。之后,服务器会发送响应,由“中间人”将其传递给您的应用程序。
让我们看一个更具体的例子。 您走进一家餐厅,选了一张视野开阔的桌子,然后等待服务员为您点餐。在此情境中,服务员就是您的“中间人”,因为厨师无法直接接收您的订单——他正在厨房里准备其他餐点。您向服务员发出请求,服务员将该请求转达给厨房,随后收到响应(即您的餐点),并将其送至您的餐桌。请享用美食!
API 本身也是对 Web 服务器的抽象,因为应用程序并不了解“厨房”里发生了什么,只知道最终结果会是什么。终端用户知道,如果他从菜单上点了一份蛋糕,他就会得到一份蛋糕。API 有许多类型,取决于它们的设计目的或发布策略。让我们来看看这些区别。
API 非常实用。正如上文所述,为了实现特定目标,各种软件和应用程序之间的通信至关重要,因此 API 的设计基于您想要实现的目标。让我们来看几个例子:
部分 API 仅供内部使用,这在大企业中尤为常见。另一些则被设计为产品,旨在与客户使用的任何软件进行集成。主要类别如下:
私有API主要在组织内部使用,将其集成到员工使用的系统和应用程序中,以优化内部运营。即使这些API看似对公众开放,其接口仍仅限组织内部人员使用,且组织对API拥有完全控制权。这也能为组织节省部分成本。
合作伙伴API通过与一个或多个商业伙伴共享,可提供额外的收入来源。发布方与合作伙伴之间会签订相关协议。合作伙伴API还能为服务增添价值,并为交叉销售开辟渠道。
公共API向所有第三方开发者开放。此类API无需用户与发布者之间存在紧密关系,既能增加收入来源,又能帮助触达更广泛的受众并提升流量,同时支持各类公益事业和多元化的商业计划。公共API可分为以下两类:
其中,SOAP API 和 REST API 尤为值得关注,因为它们应用非常广泛。让我们来看看这些缩写背后的概念:
SOAP(简单对象访问协议)API 是一种 Web 通信协议,用于通过 HTTP/HTTPS 交换信息和结构化数据。与 REST API 不同,SOAP 仅支持 XML 数据格式。尽管大多数 Web 数据交换通过 REST 实现,但这并不意味着 SOAP 会很快被淘汰,因为它高度标准化、安全性更高,并且有时支持自动化。
XML(可扩展标记语言)是一种独立于软件或硬件的数据存储与传输工具。它拥有一套规则,用于将消息结构化为既可供人类阅读又可供机器解析的记录。如下文所示,其结构与 HTML 相似,但 XML 语言没有预定义的标签,因此作者必须同时定义标签和文档结构。
表征状态转移(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 的文章,了解一些 Web API 的实际应用案例!

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