RESTful API 架构 —— 从入门到实践

阅读时长 7 分钟读完

REST(Representational State Transfer)是一种设计风格,用于构建基于网络技术的分布式系统。RESTful API 是基于 REST 架构风格设计的 Web Service API,它使用 HTTP 协议来进行通信,被广泛用于各种 Web 应用程序的开发。

本文将介绍 RESTful API 的基本概念、原则和实践,并通过示例代码来说明如何构建 RESTful API。

什么是 RESTful API?

RESTful API 通常基于 HTTP 协议构建,并使用简单易懂的 URL 和标准 HTTP 方法来传递数据。它采用一组特征和约束条件,以便跨越 Web 通信时更加可靠和可扩展。RESTful API 的设计原则包括以下几点:

  1. 客户端-服务器架构:客户端和服务器应该分离开,以便更好地处理不同的关注点。

  2. 无状态:服务器不应该保存任何客户端状态,所有的状态都应该由客户端来管理。

  3. 缓存:服务端应该为可缓存资源提供缓存支持,以便提高性能。

  4. 统一接口:所有的资源都应该通过一致的接口进行访问,这也是 RESTful API 的核心原则。

  5. 分层:客户端不需要知道整个系统的架构,它只需要知道如何访问所需的资源。

  6. 按需代码:服务器应该尽可能少地向客户端返回代码,而只返回所需的资源数据。

使用 Node.js 和 Express 构建 RESTful API

Node.js 是一种基于事件驱动、轻量级和高效的 JavaScript 运行环境,而 Express 是一种流行的 Node.js Web 应用程序框架。我们可以使用 Node.js 和 Express 来构建 RESTful API。

以下是一个简单的示例代码,用于创建一个基于 Express 的 RESTful API:

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

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

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

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

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

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

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

上面的示例代码创建了一个包含三个图书记录的 books 数组,然后定义了三个 RESTful API 端点:

  • GET /api/books:获取所有书籍记录。
  • GET /api/books/:id:通过 ID 获取单个书籍记录。
  • POST /api/books:添加新书籍记录。

我们通过使用 bodyParser 中间件来解析请求体,并使用 Express 的 get 和 post 方法来定义 RESTful API 端点。最后,我们使用 listen 方法来指定应用程序要监听的端口。

如何使用 RESTful API?

使用 RESTful API 可以很方便地从 Web 应用程序中获取和更新数据。下面是一个简单的 HTML 页面示例,它使用上面定义的 RESTful API 端点来查询和添加书籍记录:

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

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

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

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

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

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

上面的示例代码演示了如何使用 fetch 方法来从客户端发起 RESTful API 请求,并处理响应数据。在查询书籍记录时,我们使用了 /api/books 端点来获取所有书籍记录。在添加书籍记录时,我们使用了 /api/books 端点,并使用 POST 方法来向服务器发送书籍数据。

结论

RESTful API 是构建基于 Web 技术的分布式系统的有效方式之一。它使用 HTTP 协议作为通信协议,并且具有一组特征和约束条件,以便跨越 Web 通信时更加可靠和可扩展。使用 Node.js 和 Express,我们可以轻松地构建 RESTful API,并使用 fetch 和其他客户端库来与它们交互。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6774ac776d66e0f9aaef2c16

纠错
反馈