Hello folks,我是 Luga,今天我们来聊一下应用程序接口(API)生态相关的技术概念 - API Endpoint 。
—.NET="t"> 01 —
API ,即全称为 Application Programming Interface 。在我们的潜意识中,API 是一种用于促使软件程序之间相互连接和通信接口。
在深入 API 底层原理之前,我们先了解一下 UI。通常来讲,UI 是用户与软件程序之间的交互界面,它提供了一种可视化或图形化的方式,使用户能够与程序进行沟通和操作。UI 包括用户界面元素、布局、交互设计等,旨在提供用户友好的体验。
API 的工作原理类似于用户界面(UI),但有一个关键的区别:在用户界面中,交互是发生在人与软件程序之间,而在 API 中,交互是在软件程序之间,也就是机器对机器的交互。
这种机器对机器的交互可以更高效地传递数据和执行任务。API 允许不同的软件程序之间共享和访问信息,使它们能够相互合作完成复杂的操作。就像我们在用户界面中点击按钮或输入文本来与软件交互一样,在 API 中,软件程序使用指定的请求和参数来与其他程序进行通信。
值得一提的是,虽然 API 和用户界面在工作原理上有相似之处,但它们的用途和目标不同。用户界面旨在提供给人使用的友好界面,使其能够与软件进行交互和控制。而 API 主要用于程序之间的数据传递和功能调用,以实现更高级的自动化和集成。
下图来自 Arnaud Lauret 所著的《Web API 设计》一书,用以展示 UI 和 API 之间的相似之处。这张图可以帮助我们理解 API 的工作原理,并将其与我们对用户界面的熟悉概念进行对比。具体如下所示:
— 02 —
API 的工作原理通常通过客户端和服务器之间的请求-响应通信来表达。客户端是与用户交互的任何前端应用程序。服务器负责后端逻辑和数据库操作。在这种情况下,API 充当客户端和服务器之间的中间层,使得发送数据请求和响应成为可能。
下面是 API 的工作原理的一般步骤,具体如下所示:
1、请求
一个软件程序(通常被称为客户端)向拥有所需功能或数据的另一个软件程序(通常被称为服务器)发起请求。这个请求包含了所需的操作和参数,以及其他必要的信息。
2、传输
请求通过网络传输到服务器。这通常是通过 HTTP(超文本传输协议)进行的,但也可以使用其他协议,如 SOAP(简单对象访问协议)或 RESTful(表述性状态转移)。
3、处理
服务器收到请求后,会根据请求中的操作和参数执行相应的操作。这可能涉及从数据库中检索数据、进行计算、调用其他功能模块等。
4、响应
服务器处理完请求后,会生成一个响应,并将其发送回客户端。响应包含了所请求的数据、操作的结果或其他必要的信息。
5、解析
客户端接收到服务器的响应后,会解析响应数据,并根据需要进行处理。这可能涉及将数据显示在用户界面上,进一步处理数据,或者触发其他操作。
从本质上来讲,API 的工作原理可以理解为一种协议,它定义了客户端和服务器之间的通信规则和数据格式。通过使用统一的 API,开发人员可以轻松地将不同的软件组件集成到一起,实现数据共享和功能交互,从而提高系统的灵活性和扩展性。
需要注意的是,API 可以是公开的(向公众开放)或私有的(仅限于特定的系统或组织内部使用)。公开的 API 允许开发人员创建第三方应用程序或服务,与其他系统进行集成,并提供给其他开发人员使用。私有的API主要用于内部系统之间的通信和集成。
— 03 —
API Endpoint 是一个数字位置,用于接收关于特定资源的请求,该资源位于 API 的服务器上。通常情况下,API Endpoint 是一个统一资源定位符 (URL),用于指示服务器上的资源位置。
为了更好理解这个定义以及 Endpoint 在 API 模型中的位置,让我们简要回顾 API 的工作原理。为了实现两个软件应用程序之间的互联互通,一个应用程序(称为客户端)向另一个应用程序的 API 发送请求。客户端可以请求服务器上的资源,或者要求服务器执行特定的操作。
一旦服务器接收并验证了客户端的请求,API 就会执行请求所要求的操作,然后将响应发送回客户端。响应中包括请求的状态(例如,成功完成或被拒绝)以及客户端请求的任何资源。
因此,API Endpoint 在整个过程中充当了一个入口点,用于接收和处理客户端请求,并返回相应的响应。它提供了一种标准化的方式,使客户端能够准确地定位和访问服务器上的特定资源。
— 04 —
在实际的项目开发过程中,Endpoint 和 API 是 2个密切相关的概念,它们之间存在一定的关系。
API(应用程序接口)是一组定义了软件组件之间交互规范的接口。它描述了如何使用和访问特定的功能、服务或数据。API 定义了可用的操作、数据格式、参数等,以及与其它软件组件进行通信的方式和协议。
Endpoint 是 API 中的一个概念,它是指 API 暴露给外部调用者的具体访问点或 URL。Endpoint 提供了访问 API 的入口,允许客户端发送请求,并从 API 获取所需的数据或执行操作。每个 Endpoint 通常代表 API 中的一个特定资源或功能。
换句话说,API 是一个更广泛的概念,描述了整体的接口规范和功能,而 Endpoint 是 API 中的具体实现,表示 API 的一个具体访问点。
通过 API,开发人员可以定义多个不同的 Endpoint,每个 Endpoint 对应 API 的不同功能或资源。每个 Endpoint 可能具有不同的 URL、HTTP 方法、参数、请求和响应数据格式等。
总结来说,API 是整体接口的规范,描述了可用的功能和服务,而 Endpoint 是 API 中的具体访问点,表示 API 的实际可访问的 URL 或路由。Endpoint 实际上是 API 的具体实现,使得客户端可以通过特定的 URL 和参数与 API 进行交互。
从另一角度而言,端点和 API 是不同的。端点是 API 的一个组件,而 API 则是一组允许两个应用程序共享资源的规则。端点是资源的位置,API 使用端点 URL 来检索所请求的资源"
— 05 —
通常来讲,API Endpoint 的存在是为了提供一个可访问和使用 API 的具体入口,使得客户端能够准确地请求和获取他们所需的特定资源。它简化了 API 的访问方式,并支持不同的操作、版本控制和安全性控制。具体如下所示:
1、定位资源
API Endpoint 允许客户端明确指定他们想要访问的特定资源。每个 Endpoint 通常代表 API 中的一个特定资源或功能。通过使用不同的 Endpoint,客户端可以定位和请求他们所需的特定数据或执行特定的操作。
2、简化访问方式
API Endpoint 通过提供一个统一的 URL 或路由,使得客户端能够简化访问 API 的方式。客户端只需使用特定的 Endpoint URL,无需了解底层的 API 实现细节,就可以轻松地与 API 进行通信。
3、支持不同操作
API Endpoint 可以支持不同的 HTTP方法(如 GET、POST、PUT、DELETE等),用于在客户端和服务器之间传递不同类型的请求和操作。通过使用不同的 HTTP 方法,Endpoint 可以执行不同的操作,例如获取资源、创建新资源、更新资源或删除资源。
4、版本控制
通过为每个 API 版本提供不同的 Endpoint,可以实现对 API 的版本控制。这样,当 API 进行重大更改或升级时,旧的 Endpoint 可以保持不变,以确保现有客户端的兼容性,而新的 Endpoint 可以引入新的功能或改进。
5、安全性和权限控制
API Endpoint 可以用于实施安全性和权限控制。通过对 Endpoint 进行身份验证、授权和访问控制,可以确保只有经过授权的客户端才能访问和使用 API 中的特定资源。