原生 JavaScript 编写 RESTful API 详解

RESTful API 是一种通用的 Web API 设计风格,它基于 HTTP 协议,采用统一的资源标识符(URI)和标准的 HTTP 方法(GET、POST、DELETE、PUT 等)来操作资源。RESTful API 设计简单、易于理解、扩展性好,因此在 Web 开发中得到了广泛应用。本文将详细介绍如何使用原生 JavaScript 编写 RESTful API,并提供相应的示例代码。

1. HTTP 请求与响应

在编写 RESTful API 之前,我们需要了解 HTTP 协议的基本知识。HTTP 协议是一种客户端-服务器协议,客户端发送请求,服务器返回响应。HTTP 请求通常由以下几个部分组成:

  • 请求方法:GET、POST、DELETE、PUT 等。
  • 请求头:包含请求的元数据,例如 Content-Type、Authorization 等。
  • 请求体:包含请求的数据,例如表单数据、JSON 数据等。
  • 请求路径:表示请求的资源路径,例如 /users/1。

HTTP 响应通常由以下几个部分组成:

  • 状态码:表示请求的处理结果,例如 200、404 等。
  • 响应头:包含响应的元数据,例如 Content-Type、Authorization 等。
  • 响应体:包含响应的数据,例如 HTML 页面、JSON 数据等。

在 JavaScript 中,我们可以使用 XMLHttpRequest 对象发送 HTTP 请求,并获取服务器返回的响应。XMLHttpRequest 对象提供了以下几个方法:

  • open(method, url, async):指定请求的方法、URL 和是否异步发送请求。
  • setRequestHeader(header, value):设置请求头。
  • send(data):发送请求,并可选地发送请求体。
  • abort():取消请求。

XMLHttpRequest 对象提供了两种接收响应的方式:

  • 通过 onreadystatechange 事件监听器实现异步接收响应,该事件在 XMLHttpRequest 对象状态发生变化时触发。
  • 通过 onload 事件监听器实现同步接收响应,该事件在 XMLHttpRequest 对象成功接收响应时触发。

以下是一个使用 XMLHttpRequest 对象发送 GET 请求的示例代码:

----- --- - --- ----------------
--------------- ----------- -----
------------------------------------- ------- -------
---------------------- - ---------- -
  -- --------------- --- - -- ---------- --- ---- -
    ----- ---- - ----------------------------
    -----------------
  -
-
----------

2. RESTful API 设计原则

在编写 RESTful API 时,我们应该遵循以下几个原则:

  • 资源是 API 的核心概念,每个资源都应该有一个唯一的 URI。
  • 使用 HTTP 方法表示对资源的操作,例如 GET、POST、DELETE、PUT 等。
  • 使用 HTTP 状态码表示请求的处理结果,例如 200、201、400、404 等。
  • 使用 JSON 格式表示请求和响应的数据,以便于解析和处理。
  • 使用 HATEOAS(超媒体引擎状态转移)机制,让客户端通过链接发现 API 的功能。

以下是一个使用 RESTful API 设计原则编写的 GET /users/:id 接口的示例代码:

----- ------- - ---- -- -
  ----- --- - --- ----------------
  --------------- --------------- -----
  ------------------------------------ -------------------
  ---------------------- - ---------- -
    -- --------------- --- -- -
      -- ----------- --- ---- -
        ----- ---- - ----------------------------
        -----------------
      - ---- -- ----------- --- ---- -
        ----------------- --- -------
      - ---- -
        ------------------- -- --- ------
      -
    -
  -
  ----------
-

3. RESTful API 的增删改操作

除了 GET 请求之外,我们还可以使用 POST、DELETE、PUT 等请求方法实现 RESTful API 的增删改操作。以下是一个使用 RESTful API 设计原则编写的 POST /users 接口的示例代码:

----- ---------- - ------ -- -
  ----- --- - --- ----------------
  ---------------- --------- -----
  ------------------------------------ -------------------
  ---------------------- - ---------- -
    -- --------------- --- -- -
      -- ----------- --- ---- -
        ----- ------- - ----------------------------
        --------------------
      - ---- -
        ------------------- -- ------ ------
      -
    -
  -
  ------------------------------
-

------------ ----- -------- ---- -- --

以下是一个使用 RESTful API 设计原则编写的 DELETE /users/:id 接口的示例代码:

----- ---------- - ---- -- -
  ----- --- - --- ----------------
  ------------------ --------------- -----
  ------------------------------------ -------------------
  ---------------------- - ---------- -
    -- --------------- --- -- -
      -- ----------- --- ---- -
        ----------------- ---------
      - ---- -- ----------- --- ---- -
        ----------------- --- -------
      - ---- -
        ------------------- -- ------ ------
      -
    -
  -
  ----------
-

-------------

以下是一个使用 RESTful API 设计原则编写的 PUT /users/:id 接口的示例代码:

----- ---------- - ---- ----- -- -
  ----- --- - --- ----------------
  --------------- --------------- -----
  ------------------------------------ -------------------
  ---------------------- - ---------- -
    -- --------------- --- -- -
      -- ----------- --- ---- -
        ----- ----------- - ----------------------------
        ------------------------
      - ---- -- ----------- --- ---- -
        ----------------- --- -------
      - ---- -
        ------------------- -- ------ ------
      -
    -
  -
  ------------------------------
-

------------- - ----- ------ ---- -- --

4. 总结

本文介绍了如何使用原生 JavaScript 编写 RESTful API,并提供了相应的示例代码。在编写 RESTful API 时,我们应该遵循 RESTful API 设计原则,使用 HTTP 方法表示对资源的操作,使用 HTTP 状态码表示请求的处理结果,使用 JSON 格式表示请求和响应的数据,以便于解析和处理。同时,我们也应该使用 HATEOAS 机制,让客户端通过链接发现 API 的功能。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d141eaadd4f0e0ffa0025c