api的组成部分是什么

APIGit

2023-04-19

card-Components-of-an-API

API 的组成部分是什么?

API 是一组基于代码的指令,使软件组件能够通信和传输数据,它们是所有现代应用程序的构建块。但是 API 本身的构建块是什么?在本文中,我们将通过端到端的请求来回顾 REST API 的不同组件。

API客户端

API 请求可以通过许多不同的方式触发。例如,用户可能会通过输入搜索词、单击按钮或滚动浏览 Web 或移动应用程序上的列表来发起 API 请求。也可以发出 API 请求以响应外部事件,例如来自另一个应用程序或服务的通知。无论API请求是如何触发的,都会有一个API客户端负责组装并指向API服务器。

重要的是要注意,短语“API 客户端”根据上下文可能有不同的含义。首先,它可以指一种开发工具,它抽象出一些手动发送 API 请求的复杂性,这使得探索、测试和调试 API 变得更加容易。它还可以指使用特定语言的库和 SDK 在较大应用程序的上下文中发起 API 请求的服务。这两类 API 客户端都负责处理 API 返回的数据并将其呈现给用户,但后一类客户端也可能在应用程序的逻辑流中使用返回的数据。

API请求

我们提到 API 客户端负责发送 API 请求以响应用户操作或外部事件,但究竟什么是 API 请求?根据 API 的类型,API 请求的外观和行为会有所不同。也就是说,对 REST API 的 API 请求由以下组件组成:

  • 端点: 每个 API 请求都指向一个 API 端点,这是一个提供对特定资源的访问的专用 URL。例如,电子商务应用程序中的 /products 端点将包含用于处理与产品相关的所有请求的逻辑。因此,请求必须指定一个端点,以便 API 服务器知道如何继续。我们将很快更详细地讨论 API 服务器。
  • 方法:每个 API 请求都必须包含一个方法,该方法定义了客户端要对指定资源执行的操作。 REST API 可通过标准 HTTP 方法访问,例如 GET、POST、PUT、PATCH 和 DELETE,这些方法有助于执行检索、创建、更新或删除数据等常见操作。对 /products 端点的 GET 请求将告诉 API 服务器返回数据库中的每个产品。
  • 参数:参数是传递给 API 端点的变量,为 API 处理提供特定指令。这些参数可以作为 URL、查询字符串或请求正文的一部分包含在 API 请求中。例如,电子商务 API 的 /products 端点可能接受“颜色”参数,它将用于访问和返回特定颜色的产品。
  • 请求标头:API 请求标头是提供有关请求的附加信息的键值对。例如,Content-Type 标头指定请求正文中的数据格式,而 Authorization 标头提供身份验证凭据,例如 API 密钥或 OAuth 令牌,以对请求者进行身份验证。
  • 请求正文: 请求主体包括创建、更新或删除资源所需的实际数据。例如,如果电子商务商店的管理员需要创建新产品,请求正文可能包括产品名称、品牌和价格。 API 规范将规定请求所需的数据格式,例如 JSON 或 XML。

接口服务器

API 客户端组装请求后,会将其发送到 API 服务器上的适当端点进行处理。 API 服务器负责处理身份验证、验证输入数据、从数据库中检索或操作数据,并将适当的响应返回给客户端。

重要的是要注意,虽然数据库本身不是 API 组件,但没有它 API 就无法运行。 API 服务器根据请求检索和操作应用程序数据,而数据库以促进高效检索和操作的方式存储和组织这些数据。因此,API 服务器充当 API 客户端和数据库之间的中介。

API响应

上面我们提到,API server 负责在处理完请求后向客户端发送响应。 API 响应的内容可能因请求类型和 API 设计的不同而有很大差异,但它们通常包括以下组件:

  • 状态码: API 状态代码是由 API 返回的 HTTP 状态代码,用于指示客户端请求的状态。这些代码用于向客户提供有关请求结果的信息,并帮助客户了解如何进行。一些最常见的状态码包括200 OK,表示服务器成功返回了请求的数据,201 Created,表示服务器成功创建了一个新资源,404 Not Found,表示服务器找不到请求的数据资源。
  • 响应标头: 响应标头与请求标头非常相似,只是它们用于提供有关服务器响应的附加信息。例如,Cache-Control 标头提供有关数据可以在缓存中存储多长时间的说明,而 Set-Cookie 标头在浏览器中设置一个 cookie,可用于会话管理或身份验证。
  • 响应体: 响应体包含 API 服务器响应客户端请求而返回的数据或内容。响应主体千差万别,但它们通常包含结构化数据对象,这些对象代表所请求的资源、元数据,以及(如果请求失败)有关出错原因的错误消息。例如,针对特定产品的成功 GET 请求可能包括该产品的 JSON 表示,以及时间戳和数据源。

虽然 REST 是最常见的 API 架构,但其他类型的 API(例如 GraphQL 和 gRPC)将具有不同的组件。尽管如此,此列表包括执行对每个 RESTful API 的请求所涉及的核心组件。

今天,数以万计的开发人员使用 Apitgit 平台。 Apitgit 简化了 API 生命周期的每个步骤并简化了协作,因此您可以更快地创建更好的 API。