应用程序编程接口 —API

时间:2024-02-22
新悦网络

编辑:

什么是 API?

API(即应用程序编程接口)是一组规则或协议,允许软件应用程序相互通信以交换数据、特性和功能。
API 允许开发人员集成其他应用程序的数据、服务和功能,而不是从头开始开发,从而简化了应用程序开发。API 还为应用程序所有者提供了一种简单、安全的方式,使其组织内的内部部门可以使用其应用程序数据和功能。应用程序所有者还可以向业务合作伙伴或第三方共享或营销该数据和功能。

 

API 的工作原理

了解 API 工作原理的一个简单方法是查看一个常见示例——第三方支付处理。当用户在电子商务网站上购买产品时,系统可能会提示他们“使用 Paypal 付款”或其他类型的第三方系统。此功能依赖 API 来建立连接。

当买家点击付款按钮时,API 会调用以检索信息(也称为请求)。此请求通过 API 的统一资源标识符 (URI) 从应用程序到 Web 服务器进行处理,包括请求动词、标头,有时还包括请求正文。

从产品网页收到有效请求后,API 会调用外部程序或 Web 服务器,在本例中为第三方支付系统。

服务器向 API 发送包含所请求信息的响应。

API 将数据传输到初始请求的应用程序,此处为产品网站。

虽然数据传输会根据所使用的 Web 服务而有所不同,但请求和响应都是通过 API 发生的。用户界面不可见,这意味着 API 在计算机或应用程序内交换数据,并在用户看来是无缝连接。

API 类型

如今,大多数 API 都是 Web API,它们通过互联网公开应用程序的数据和功能。以下是 Web API 的四种主要类型:

开放 API是可以通过 HTTP 协议访问的开源应用程序编程接口。也称为公共 API,它们定义了 API 端点以及请求和响应格式。

合作伙伴 API 连接战略业务合作伙伴。通常,开发人员通过公共API 开发人员门户以自助服务模式访问这些 API  。尽管如此,他们仍然需要完成入职流程并获得登录凭据才能访问合作伙伴 API。

内部 API 对外部用户保持隐藏。这些私有 API 不适用于公司外部的用户,而是旨在提高不同内部开发团队之间的生产力和沟通。

复合 API组合了多个数据或服务 API。它们允许程序员在一次调用中访问多个端点。复合 API 在微服务架构中非常有用,在微服务架构中执行单个任务可能需要来自多个来源的信息。

API协议

随着 Web API 使用的增加,导致了某些协议的开发。这些协议为用户提供了一组定义的规则或 API 规范,用于创建可接受的数据类型命令和语法。实际上,这些 API 协议促进了标准化信息交换。

  • SOAP(简单对象访问协议):  SOAP 使用 XML 构建,使端点能够通过 SMTP 和 HTTP 发送和接收数据。SOAP API 使在不同环境中运行或以不同语言编写的应用程序或软件组件之间共享信息变得更加容易。
  • XML-RPC(XML-Remote procedure Call):  XML-RPC协议依赖于特定的XML格式来传输数据。XML-RPC 比 SOAP 更古老,但简单得多,并且相对轻量级,因为它使用最小的带宽。
  • JSON-RPC: 与 XML-RPC 一样,JSON-RPC 是远程过程调用,但使用 JSON(JavaScript 对象表示法)而不是 XML 来传输数据。
  • REST(表述性状态传输):  REST 是一组 Web API 架构原则。REST API(也称为 RESTful API)是遵守某些 REST 架构约束的 API。可以使用 SOAP 协议构建 RESTful API,但这两个标准通常被视为相互竞争的规范。

传统上,API 是指连接到使用任何低级编程语言(例如 JavaScript)创建的应用程序的接口。然而,现代 API 遵循 REST 原则和 JSON 格式。它们通常是为 HTTP 构建的,从而产生对开发人员友好的界面,这些界面很容易被用Java、Ruby、Python 和许多其他语言编写的应用程序访问和广泛理解。

API相关技术 API 与 Web 服务

Web 服务是一种可以通过网址访问并促进数据传输的软件组件。由于 Web 服务将应用程序的数据和功能公开给其他应用程序,因此实际上每个 Web 服务都是一个 API。然而,并非每个 API 都是 Web 服务。

API 是充当两个断开连接的应用程序之间中介的任何软件组件。虽然 Web 服务也连接应用程序,但它们需要网络才能实现。有些 API 是开源的,而 Web 服务通常是私有的,只有经过批准的合作伙伴才能访问它们。


API、微服务和云原生开发

微服务是一种架构风格,它将应用程序划分为更小的独立组件(也称为微服务),并使用 REST API 连接。将应用程序构建为一组单独的服务,使开发人员能够独立于其他应用程序组件来工作,并使应用程序更易于测试、维护和扩展。

 

随着云计算的兴起,微服务架构变得越来越普遍,它与容器 和 Kubernetes一起成为云原生应用程序开发的基础。

最新内容

知识库