用 TypeScript 创建简单的 REST API:入门指南

阅读时长 7 分钟读完

在现代 Web 开发中,REST API 是非常常见的一种 API 性质,能够提供方便易用的 Web 服务。而 TypeScript 是一门静态类型的 JavaScript 超集,带来可维护和可扩展性的权益。

这篇文章将会教你如何用 TypeScript 开发简单的 REST API,并展示一个使用 Express、TypeORM 和 PostgreSQL 的示例项目。

准备工作

为了构建这个 API,我们需要准备以下环境:

  • Git 客户端
  • Node.js
  • PostgreSQL 数据库

在安装好这些必需的软件之后,我们可以创建一个新的 TypeScript 项目:

创建 Express 应用

首先,我们需要添加一些常用的中间件,用 app.use() 方法把它们都集成到 Express 应用里面。

这里的 express.json() 中间件能够帮助我们解析 JSON,express.urlencoded() 则能帮助我们解析 URL 编码。

接下来,我们需要添加一个路由来响应 HTTP 请求。这个路由将会返回一些简单的 JSON 数据给客户端。

连接数据库

我们可以用 TypeORM 来连接 PostgreSQL 数据库并定义实体类。实体类是数据库存储的数据模型,每个实体类对应一张表。

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

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

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

需要注意的是,createConnection() 方法是一个异步操作(返回一个 Promise),我们需要使用 then()catch() 函数来处理结果。

构建实体类

entities 数组中添加我们的实体类,并指定它们对应使用的数据表就好了。

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

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

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

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

这里的 @Entity() 装饰器指定了实体类对应的数据表。@PrimaryGeneratedColumn()@Column() 则分别表示这个字段是主键和普通字段。

创建 REST API 集成实体类

现在,我们可以开始创建 REST API 并集成实体类了。我们需要添加以下路由来处理 CRUD 操作:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这里的 getRepository 方法用来获取数据库操作实体类的仓库(Repository),然后我们就可以使用它们提供的 CRUD 方法(find()findOne()create()save()remove() 等)来操作数据库了。

打开应用并测试 API

现在,我们可以使用适当的运行命令来启动应用程序,例如:

或者,你可以使用 ts-node 命令来直接运行。

当我们为应用程序创建一个新的 HTTP 请求时,我们可以看到请求成功(HTTP 状态码 200 OK)。

测试 API

为了测试我们的 API,我们将使用 curl 工具来创建 HTTP 请求。我们可以使用以下命令检索用户数据:

输出应该类似于以下内容:

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

我们还可以使用以下命令获取单个用户信息:

此时应该会输出 Alice 的信息:

类似地,我们也可以使用 POSTPUTDELETE 方法来对用户数据进行 Create、Update、Delete 操作。

结论

本篇文章简要介绍了 TypeScript 开发 REST API 的基本步骤,并以示例代码的形式展现了一个实际的实现方案。如果你想深入了解 TypeScript 和其他 Web 开发技术,可以查看 TypeScript 官方文档Express 官方文档

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

纠错
反馈