如何在30分钟内用TypeScript编写REST API

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:为什么使用TypeScript构建REST API?

现代Web开发离不开创建高效且安全的API。TypeScript作为JavaScript的超集,提供了静态类型检查,这能显著减少运行时错误并提升代码可读性。在本指南中,我们将向您展示如何在30分钟内用TypeScript编写一个功能完备的REST API。您将学习如何配置项目、创建基础端点以及处理错误。本教程非常适合希望快速掌握服务端应用程序构建的初学者开发者。



环境配置与依赖安装

首先,您需要创建一个新项目并安装所有必要的软件包。请确保您已经安装了Node.js(版本18或更高)和npm。



第一步:项目初始化

打开终端并执行以下命令:

mkdir my-rest-apicd my-rest-apinpm init -y


第二步:安装TypeScript及依赖

安装TypeScript、Express以及所需的类型声明:

npm install expressnpm install -D typescript @types/node @types/express ts-node nodemon
  • express — 用于创建服务器的框架。
  • typescript — TypeScript编译器。
  • @types/express — Express的类型声明。
  • ts-node — 用于直接运行TypeScript。
  • nodemon — 监测文件变更并自动重启服务器。


第三步:配置tsconfig.json

在项目根目录下创建一个tsconfig.json文件:

{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "skipLibCheck": true  },  "include": ["src/**/*"],  "exclude": ["node_modules"]}


使用TypeScript创建基础服务器

现在我们来创建文件夹结构和主服务器文件。



第四步:项目结构

创建一个src文件夹和一个src/index.ts文件:

mkdir srctouch src/index.ts


第五步:编写服务器代码

打开src/index.ts并添加以下代码:

import express, { Request, Response } from 'express';

const app = express();const PORT = process.env.PORT || 3000;

// 用于解析JSON的中间件app.use(express.json());

// 基础路由app.get('/', (req: Request, res: Response) => { res.send('基于TypeScript的REST API正在运行!');});

// 启动服务器app.listen(PORT, () => { console.log(`服务器运行在端口 ${PORT} 上`);});


第六步:在package.json中添加脚本

更新package.json,添加用于开发和构建的脚本:

"scripts": {  "dev": "nodemon --exec ts-node src/index.ts",  "build": "tsc",  "start": "node dist/index.js"}

现在使用命令 npm run dev 启动服务器。您应该会看到消息“服务器运行在端口 3000 上”。



实现CRUD端点

让我们创建一个简单的数据模型,并实现创建、读取、更新和删除(CRUD)操作。本示例将使用“任务(Task)”实体。



第七步:创建模型与存储

创建文件 src/models/Task.ts:

export interface Task {    id: number;    title: string;    completed: boolean;}

// 临时内存存储export const tasks: Task[] = [ { id: 1, title: '学习TypeScript', completed: false }, { id: 2, title: '编写REST API', completed: false },];


第八步:创建路由

创建文件 src/routes/tasks.ts:

import { Router, Request, Response } from 'express';                

博客

书籍推荐